javaScript 工作必知(十) call apply bind

call

     每个func 都会继承call apply等方法。

 function print(mesage)
        {
            
            console.log(mesage);
            return mesage;
        }
        print.call(this, "cnblogs");//cnblogs

  call(thisAgr,agr1,agr2...) ,call方法第一个传递一个context上下文。后面是参数的个数。

apply

      apply(thisAgr,[agr1,agr2]),apply方法和call的用法一样,只是传递的参数会有所不同。。

function print(a,b)
        {
            console.log(a + b);
        }
    
        print.apply(this, ["hello","cnblogs"]);

bind

  bind就是将函数把绑定至摸个对象。

 <script>
      
        function f(y) { alert(this.x + y); }

        var o = { x: 1 };
       var g= f.bind(o);
       g(2);//3
    </script>

summary

      call apply 函数的调用,和直接使用函数调用是一样的。

      call apply 也是可以模仿bind 方法的。

    

<script>
      
        function f(y) { alert(this.x + y); }

        var o = { x: 1 };
        f.call(o, 2);//3
        f.apply(o, [3]);//4
    </script>

  

原文地址:https://www.cnblogs.com/fandong90/p/5557444.html