Показать сообщение отдельно
  #3 (permalink)  
Старый 25.10.2009, 19:05
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от 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 от непереданного значения.
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 25.10.2009 в 19:22.
Ответить с цитированием