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); };
возможно ли это?
Нет, это невозможно.
Вы можете вызвать метод с указанным значением для this (используя method.apply() / method.call()), но вы не можете переназначить ключевое слово , this.
method.apply()
method.call()
this
Вы не можете изменить то, к чему относится this из внутри функции.
Однако вы можете вызвать функцию в определенном контексте - так что this ссылается на конкретный объект - используя call или apply.
call
apply
J-P правильно. Это невозможно. См. Документ спецификации языка JavaScript ECMA-262. Вы можете скачать стандарт здесь:
http://www.ecma -international.org / публикации / стандарты / ECMA-262.htm
Файл ECMA-262.pdf и на стр. 39, раздел 10.1.7.
10.1.7 Это Это значение связано с каждый активный контекст выполнения. это значение зависит от абонента и тип исполняемого кода и является определяется, когда контроль входит в контекст исполнения. Это значение связанный с контекстом выполнения неизменен.
10.1.7 Это
Это значение связано с каждый активный контекст выполнения. это значение зависит от абонента и тип исполняемого кода и является определяется, когда контроль входит в контекст исполнения. Это значение связанный с контекстом выполнения неизменен.
Примечание: «Неизменен». т.е. не может быть изменено.