Сообщение от Zeroglif
|
Вместо null/undefined в call подставляется глобальный объект
|
Кроме, видимо, Chrome, который различает this-value для undefined и null.
alert(Object.prototype.toString()); // [object Object]
alert(Object.prototype.toString.call(undefined)); // [object builtins]
alert(Object.prototype.toString.call(this)); // [object global]
По идее, первые два вызова должны (по алгоритму Function.prototype.call, 15.3.4.4) подставить thisArg, как глобальный объект (а третий - и так глобальный объект), но Хром различает реально переданный undefined от непереданного значения.