如何在同一对象中调用原型函数
How to invoke a prototype function within same object?
我有以下javascript代码。
var Test = function(){
$("#"+elementId).click(function(){
// How to call Test.callbackTest here?
});
}
Test.prototype.callbackTest = function(){
//code
}
如果我想在点击事件中调用callbackTest(),我必须使用这个.callbackTest(()吗?
或者有更好的方法吗?
如果你想使用from click函数,这个.callbackTest()将无法工作,因为它将绑定到窗口对象,而不是你的函数。有多种方法可以做到这一点。。一次快速一次
var Test = function(){
var that = this
$("#"+elementId).click(function(){
// How to call Test.callbackTest here?
that.callbackTest();
});
}
Test.prototype.callbackTest = function(){
//code
}
jquery还提供了一个代理解决方案,我建议您查看一下。如果你使用它,你的代码将像
var Test = function(){
$.proxy(this.callbackTest,this) // This ensures that wheneven callbackTest is called , 'this' inside callbackTest will be bound to current object , in this case Test
$("#"+elementId).click(function(){
//AND THEN YOU CAN USE THIS here
this.callbackTest();
});
}
Test.prototype.callbackTest = function(){
//code
}
您可以将callbackTest
设为私有:
var Test = function(){
function callbackTest(){
//code
}
$("#"+elementId).click(callBackTest);
};
否则应该是
var Test = function(){
var me = this;
$("#"+elementId).click(function(){
me.callbackTest();
});
};
相关文章:
- 使用setInterval调用原型函数时出现问题
- Javascript不调用原型方法
- JavaScript–从另一个原型函数调用原型的一个函数
- 通过引用调用原型函数时,类会丢失“this”作用域
- 调用原型函数的元素是什么
- 调用原型的重写方法,然后调用下一个原型的重写方法错误
- 从继承对象的函数调用原型的方法
- 调用原型的函数
- 从回调中调用原型方法
- 通过按钮点击调用原型函数不起作用
- 在保留状态的同时调用原型方法
- 从另一个方法调用原型方法
- 在Javascript上从自身调用原型
- 我如何从父调用原型子方法
- 从父对象调用原型方法不起作用
- HTML5/webcomponents:从模板代码调用原型函数
- 从另一个调用原型方法-得到'undefined'错误
- 未调用原型方法
- 为什么通过setTimeout调用原型函数时会丢失实例信息?
- 从其他原型调用原型中的函数