Зависит от ссылки на функцию (см. 11.2.3 из спецификация ):
var valueHolder = {
value: '',
setValue: function(newValue) {
this.value = newValue;
},
getValue: function() {
return this.value;
}
}
var set = valueHolder.setValue,
get = valueHolder.getValue;
set('test');
alert(get()); // return "test"
alert(valueHolder.value); // return ""
alert(window.value); // return "test"
При упоминании в контексте this
являетсяустановите соответствующий контекст (valueHolder
в вашем примере).В моем примере выше определения функций явно идентичны, но ссылки на функции не находятся в контексте какого-либо объекта, и в этом случае this
устанавливается в глобальный контекст (window
).