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);
};
is this possible?
Thanks,
~ck in San Diego
No, it's not possible.
You can call a method with a specified value for this (using method.apply()
/method.call()
) but you cannot re-assign the keyword, this
.
You can't change what this
refers to from inside the function.
However, you can call a function in a specific context - so that this
refers to a specific object - by using call
or apply
.
J-P is correct. This is not possible. Refer to the JavaScript language specification document ECMA-262. You can download the standard from here:
http://www.ecma-international.org/publications/standards/Ecma-262.htm
The file is ECMA-262.pdf and on page 39, section 10.1.7.
10.1.7 This
There is a this value associated with
every active execution context. The
this value depends on the caller and
the type of code being executed and is
determined when control enters the
execution context. The this value
associated with an execution context
is immutable.
Note "is immutable". i.e. cannot be changed.