ES5非厳密モードで次の結果になるのはなぜですか?
Object.prototype.toString.call(null);
=> [object Null]
とすれば
Object.prototype.toString.call(window);
=> [object global]
非厳密モードでは、2つの行は同一である必要があります。これは、someFunction.call(null)
どちらと同等でsomeFunction()
ある必要があるためsomeFunction.call(window)
です。