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。如果你能找到它的一些報告併發布爲答案,我會接受它。 –