null/undefined将替换为IE9以外的所有浏览器中的全局对象

Šim*_*das 5 javascript browser

当我这样做:

Object.prototype.toString.call( null )
Run Code Online (Sandbox Code Playgroud)

或这个:

Object.prototype.toString.call( )
Run Code Online (Sandbox Code Playgroud)

浏览器返回以下字符串值(在两种情况下):

Chrome 9:[object global]
Safari 5:[object DOMWindow]
Firefox 3.6:[object Window]
Opera 11:[object Window]

但是在IE9 RC中,返回值分别为[object Null][object Undefined].

ES5规范规定:

注意thisArg值未经修改即作为此值传递.这是对第3版的更改,其中未定义或null thisArg将替换为全局对象,ToObject将应用于所有其他值,并且结果将作为此值传递.

见这里:http://es5.github.com/#x15.3.4.4

这是否意味着IE9是唯一遵循这个新引入的规则的浏览器?

use*_*716 3

我会冒险答应。;)

仅供参考,我刚刚测试了 FF4,它给出[object Null][object Undefined]