>> ES3 has several abstraction mechanisms: >> * lambda abstraction, which it gets approximately as right as Scheme! >> * objects as a generalization of records, which has some pros and >> cons >> * prototype-based sharing of common behavior, which is used almost >> exclusively by JavaScript programmers to express only class-like >> patterns. >> >> Altogether, ES3 has many virtues and many problems. One of its great >> virtues is its almost perfect support for lexical nesting. Virtually >> any thisless construct that could appear at top level can also appear >> within a nested lexical context with the same meaning. ES3 also >> avoids >> the CommonLisp trap of multiple namespaces, instead siding with >> Scheme's single namespace approach. >> >> Even ignoring ES4's type system, ES4 adds all the following >> abstraction mechanisms to those in ES3: >> * classes >> * packages >> * units >> * namespaces > > You forgot interfaces (and the type system also adds record types, > (sort-of)-tuples, typed arrays and parametric types). That does seem > like a lot.
There are also like / wrap types. Geoff _______________________________________________ Es4-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es4-discuss
