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);
};
这可能吗?
答案 0 :(得分:42)
不,这是不可能的。
您可以使用 this (使用 method.apply()
/ method.call()
)调用具有指定值的方法,但您无法重新分配关键字 this
。
答案 1 :(得分:9)
你无法改变this
从里面函数引用的内容。
但是,您可以在特定上下文中调用函数 - 以便this
引用特定对象 - 使用call
或apply
。< / p>
答案 2 :(得分:7)
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这个
有一个与此相关的值 每个活动执行上下文。该 这个值取决于调用者和 正在执行的代码类型 当控制进入时确定 执行上下文。这个值 与执行上下文相关联 是不可改变的。
注意“是不可变的”。即无法改变。