Live example表明,大多数都是"[object Window]"
这个错误主要是适用于控制台。请注意,Object.prototype.toString.call(window)
仍然返回全球
var s = toString;
console.log(s()); // "[object global]"
console.log(toString()); // "[object Object]"
console.log(window.toString()); // "[object Window]"
(function() {
var s = toString;
console.log(s()); // "[object Undefined]"
})();
(function() {
var s = window.toString;
console.log(s()); // "[object Window]"
})();
console.log(Object.prototype.toString.call(window)); // "[object global]"
console.log(window.toString.call(window)); // "[object DOMWindow]"
您发现了一袋未定义的行为。我建议你逃跑。这
部分可以说,全球范围内和窗口对象可能不是同一个东西来解释远(大提示是[反对全球])。
注意this === window
在所有5例。
注意解释了相当多的此。看起来像window.toString
是一个特殊的(但不同的)功能
' “[对象窗口]”'返回两个在萤火虫。 – Chad
这两个都是在Chrome 16中的''[object DOMWindow]“''。 –
@AshBurlaczenko啊,所以也许在某处修正了一个bug。如果你能找到它的一些报告并发布为答案,我会接受它。 –