我定义了一个 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();
如果“handleFilter”被调用为
servicesPrimaryObject.handleFilter();
然后
this
将引用该对象(“servicesPrimaryObject”)。 但是,如果您将该函数的引用传递给其他函数(可能作为事件处理程序),那么当从其他上下文调用时,将不会出现 this
。 您可以使用“bind()”来解决这个问题:
somethingElse(servicesPrimaryObject.handleFilter.bind(servicesPrimaryObject));
这将确保当稍后调用该函数时,函数内部的
this
始终是正确的对象。