绑定方法不起作用

时间:2013-07-14 18:01:06

标签: javascript bind

         var tap = {tap:"tap tap tap",

                  trrap : function (){
                  alert(this.tap);
                  }
};
          var tab = {tap:"tab tab tab",

                      trrab: function (){tap.trrap.bind(this);};
};
tab.trrab();

我想将tab对象传递给tap对象中的函数,它就像alert(tab.tap);。它们都有自来水。

1 个答案:

答案 0 :(得分:2)

你从未调用绑定函数。 bind返回一个它不会调用它的函数。

var tap = {
    tap:"tap tap tap",
    trrap : function (){
        alert(this.tap);
    }
};
var tab = {
    tap:"tab tab tab",
    trrab: function (){
        tap.trrap.bind(this)();
    }
};
tab.trrab();

http://jsfiddle.net/hqEXs/

您也可以使用call设置上下文并立即调用它。

tap.trrap.call(this);

apply

tap.trrap.apply(this);