On 10/21/07 10:03 AM, liorean wrote:

> On 21/10/2007, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>> var a;
>> a= {};
>> a instanceof Object //true
>> a= [];
>> a instanceof Array //true
>> a='asdf';
>> a instanceof String //false
>> a= 7;
>> a instanceof Number //false
>> 
>> Why?
> 
> Because those are primitives of type double and string respectively.
> They are not instances of any of the compound types Object, String or
> Number.
> 
> Something silly that JavaScript inherited from Java that the world
> would be much better off without, but as I understand it won't be
> corrected because of real world compatibility problems.

This problem is fixed by the addition of the 'is' operator in ES4. Replace
'instanceof' with 'is' in all of the above, and the result will be true in
each case. You correctly point out that 'instanceof' is terminally broken
for compatibility's sake.

Jd

_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to