我已经定义了一个JavaScript对象,我在其中有两个函数test1
和test2
。
当我使用test1
在test2
内拨打this.test1()
时,它说
test1
不是函数
当我使用test1
在test2
内拨打objectname.test1()
时,它可以正常工作。
我无法使用this
调用其他函数的任何原因?
servicesFilteringObject = {
init: function(){
// Created Checkboxes dynamically and associated handleFilter on onclick of it
},
handlePrimeryContent: function(){
// Some code
},
handleFilter : function(){
servicesFilteringObject.handlePrimeryContent();// works
this.handlePrimeryContent(); //does not work
}
}
servicesFilteringObject.init();
答案 0 :(得分:1)
如果“handleFilter”被调用为
servicesPrimaryObject.handleFilter();
然后this
将引用该对象(“servicesPrimaryObject”)。但是,如果将对该函数的引用传递给某个其他函数(可能作为事件处理程序),那么当从该其他上下文调用时,将不会有this
。您可以使用“bind()”来修复:
somethingElse(servicesPrimaryObject.handleFilter.bind(servicesPrimaryObject));
这将确保函数内部的this
在稍后调用函数时始终是正确的对象。