如何解决如何在同一对象内调用原型函数?
| 我有以下javascript代码。var Test = function(){
$(\"#\"+elementId).click(function(){
// How to call Test.callbackTest here?
});
}
Test.prototype.callbackTest = function(){
//code
}
如果要在单击事件中调用callbackTest(),是否必须使用this.callbackTest()?
还是有更好的方法?
解决方法
您可以将
callbackTest
设为私人:
var Test = function(){
function callbackTest(){
//code
}
$(\"#\"+elementId).click(callBackTest);
};
否则应该是
var Test = function(){
var me = this;
$(\"#\"+elementId).click(function(){
me.callbackTest();
});
};
, 如果要使用click函数,则this.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
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。