1 - Да
2 - Если вы продолжаете читать, сразу после этого он описывает пример, который делает его «ошибкой в разработке языка».
var myObject = {
value: 1
};
myObject.double = function() {
var that = this;
var helper = function() {
alert('in helper, this.value = ' + this.value + ' and that.value = ' + that.value);
that.value = that.value + that.value;
}
helper();
};
myObject.double();
alert('after doubling, myObject.value = ' + myObject.value);
В предупреждении будет показано, что использование 'this' в функции, являющейся свойством объекта, не будет работать. Если глобальный объект (вероятное окно) имеет .value
, то это будет видно в этом предупреждении.