绑定和调用有什么区别?

问题描述:

它似乎绑定和呼叫做同样的事情。每个人都有优点/缺点吗?绑定和调用有什么区别?

<script type="text/javascript"> 

    var x = { 

     name : "test" 

    } 
    function a1() { 

     a2.bind(x)();   a2.call(x); 

    } 

    function a2() { 

     console.log(this); 
    } 

    a1(); // output x object. 
</script> 
+2

对于某些特定的效果子集,'bind'和'call'可以以不同的方式使用以达到相同的效果。这不同于“他们做同样的事情”。如果他们做了同样的事情,我相信现在有人会注意到并从标准中删除其中的一个。 – Jon 2014-09-02 20:38:15

.call立即执行该功能。
.bind返回一个新的功能,可以在您方便的时候执行。例如它可以用作回调。