0
http://jsfiddle.net/raylu/C6Tkn/Почему контекст изменяется в этом фрагменте JS?
function a() {
document.write(this + '<br />');
}
a();
a.apply('hello');
var b = function() {
a();
}
b.apply('hi');
Я ожидал бы последнюю строку на выходе «привет», но вместо этого он выводит окно.
[У MDN есть хорошая страница о 'this'] (https://developer.mozilla.org/en/JavaScript/Reference/Operators/this). Всякий раз, когда вы вызываете функцию типа 'func();', 'this' будет ссылаться на глобальный объект. –
Возможный дубликат [Почему это происходит при передаче аргумента функции как строки или ссылки?] (Http://stackoverflow.com/questions/5883619/why-does-this-change-when-passing-the-function -argument-а-строка или ссылка) – PeeHaa