我有一个函数functionWithDifferentScope,它接受一个对象myobject.options作为参数。选项对象中的一对是回调,它指向myObject中定义的函数:myCallback。
我想要实现的是将myObject 命名空间注入到在全局级别(由第 3 方)定义的函数的回调中。
一个简化的例子:
var myObject = {
options: {
callback: this.myCallback(this),
...,
},
init: function() {
// functionWithDifferentScope operates in the 'window' context
functionWithDifferentScope(this.options);
},
myCallback: function(namespace) {
// 'this' is window
// 'namespace' is myObject
}
}
myObject.init();
执行此脚本时,this.myCallback(this)似乎在定义处执行(由于括号?);以及一次myObject.init(); 被调用。在第一次执行期间,这是myObject ,但通过functionWithDifferentScope的后续调用将其识别为window。
有没有办法将myObject 命名空间作为参数传递给myObject.options.callback值?