> - What about primitives?Are there primitive types and object types? Is the 
> union of the two called just “types”?
>  
> That seems to be how a lot of folks refer to them, but I think it's a little 
> confusing. A primitive type is one that cannot be decomposed any further, so 
> Object is a primitive type, and a Function is an object type.

Almost: a primitive is something that isn’t handled by reference. Object is 
therefore not a primitive type:
var o1 = new Object();
var o2 = o1;
o1.foo = 123;
console.log(o2.foo); // 123

http://www.2ality.com/2011/03/javascript-values-not-everything-is.html

> The only thing I am sure of is that "typeof" is unfortunately named :) 

I now use the rule of thumb:
- typeof: use for primitives and to distinguish primitives from objects.
- instanceof: use for objects.

Obviously, typeof also works for checking for functions.

> You could also say javascript's type lattice is pretty damn degenerate.

Can you elaborate?

> (I do think structural typing could be really useful but I have no idea how 
> it could be introduced to the language unobtrusively.)

Something like this?
    var Counter = { inc: "function", data: "number" };
    matchesInterface(anObject, Counter);

-- 
Dr. Axel Rauschmayer
[email protected]

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to