Ответ 1
Нет, это невозможно.
Вы можете вызвать метод с указанным значением для этого (используя method.apply()
/ method.call()
), но вы не можете повторно назначить ключевое слово this
.
var UI$Contract$ddlForm_change = function() {
//'this' is currently the drop down that fires the event
// My question is can I change the context so "this" represents another object?
this = SomeObject;
// then call methods on the new "this"
this.someMethod(someParam);
};
это возможно?
Нет, это невозможно.
Вы можете вызвать метод с указанным значением для этого (используя method.apply()
/ method.call()
), но вы не можете повторно назначить ключевое слово this
.
Вы не можете изменить то, что this
ссылается внутри функции.
Однако вы можете вызвать функцию в определенном контексте - так что this
относится к определенному объекту - с помощью call
или apply
.
J-P является правильным. Это невозможно. См. Документ спецификации языка JavaScript ECMA-262. Вы можете скачать этот стандарт здесь:
http://www.ecma-international.org/publications/standards/Ecma-262.htm
Файл ECMA-262.pdf и на стр. 39, раздел 10.1.7.
10.1.7 Это
Существует такое значение, связанное с каждый активный контекст выполнения. это значение зависит от вызывающего и тип выполняемого кода и определяется, когда управление входит в контекст выполнения. Это значение связанный с контекстом выполнения является неизменным.
Примечание "является неизменным". т.е. не может быть изменено.