我正在构建一个使用OOP原则的jQuery应用程序,我试图实现一个外部添加的回调函数,该函数从我的对象内部调用一个方法。OOP JavaScript:从回调函数内部调用方法
function testObject() {
var self = this;
var functions = new Array();
this.updateObject = function() {
console.log('updated')
}
this.addFunction = function(func) {
functions.push(func)
}
this.callFunctions = function() {
$.each(functions, function(key, value) {
functions[key]()
})
}
}
var myobject = new testObject();
myobject.addFunction(
function() {
$(':text').on('change', function() {
return self.updateObject();
})
}
)
这是我正在构建的插件的过于简化的版本。回调工作正常,但我不能使用self.updateObject();在它内部,因为它输出非法调用。
如何正确调用回调中的方法?
嗨MrCode!非常感谢您的复杂答案。不幸的是,我仍然遇到同样的错误。 Uncaught TypeError:非法调用。我曾尝试过以多种方式调用它,即使在理论上应该这样做也行不通。 –
编辑。我第一次做对了。问题在于非法调用方法的updateObject()方法。感谢您的帮助 –