函数调用JavaScript

时间:2011-06-15 14:04:32

标签: javascript

我已经定义了一个JavaScript对象,我在其中有两个函数test1test2

当我使用test1test2内拨打this.test1()时,它说

  

test1不是函数

当我使用test1test2内拨打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();

1 个答案:

答案 0 :(得分:1)

如果“handleFilter”被调用为

servicesPrimaryObject.handleFilter();

然后this将引用该对象(“servicesPrimaryObject”)。但是,如果将对该函数的引用传递给某个其他函数(可能作为事件处理程序),那么当从该其他上下文调用时,将不会有this。您可以使用“bind()”来修复:

somethingElse(servicesPrimaryObject.handleFilter.bind(servicesPrimaryObject));

这将确保函数内部的this在稍后调用函数时始终是正确的对象。