Показать сообщение отдельно
  #23 (permalink)  
Старый 11.12.2011, 14:27
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от nerv_
прочитать самое первое предложение, а после еще раз ответить на мой вопрос
Так что Вам не нравится?
Сообщение от monolithed
вызов фунции происходит уже в Window, т.к. this будет null
При вызове функции в качестве this будет передан null. При вызове [[Call]] this будет определён согласно этому.

С тем, что window — глобальный объект и именно на него будет указывать this в этом случае, никто не спорит. Но вместе с тем, во внутренней механике стандарта используется именно null. window не берётся каким-либо магическим образом из окруженая. И, кстати, в strict mode ES5 this не становится глобальным объектом в случае
var a = function () {
  alert(this);
};

a();
a.call(null);
(a = a)();
"use strict";
var a = function () {
  alert(this);
};

a();
a.call(null);
(a = a)();
Сообщение от nerv_
Флэнаган предполагает, что строки передаются по ссылке, но сравниваются по значению.
Элементарные типы.
Фленеган же зачем-то погружается в особенности реализации, которые не зависят от стандарта и могут сильно варьироваться.
Строки наверняка реализованы с механизмом copy-on-write.

Последний раз редактировалось B@rmaley.e><e, 11.12.2011 в 14:46.
Ответить с цитированием