首页 > 代码库 > call apply

call apply

1.call  方法的作用是一模一样的,都是用来改变方法的this关键字并且把方法执行:

而且在严格模式下对于第一个参数是null/undefined这种情况的规律也是一样的;

 var obj ={name:"珠峰培训"};
       function fn(num1,num2){
           console.log(num1 +num2);
           console.log(this);
       }
       //fn.call(100,200);//this是100,num1=200,num2=undefined
       fn.call(obj,100,200);

2.apply 和call一模一样,第一个参数是this后面参数变为数组

3.bind 只是改变了fn中的this为obj,并且给fn传递了两个参数值1、2,但是此时并没有把fn这个函数执行,

执行bind会有一个返回值,这个返回值res就是我们把fn的this改变后的那个结果

bind 等于把fn进行了预处理

  var obj ={name:"珠峰培训"};
       function fn(num1,num2){
           console.log(num1 +num2);
           console.log(this);
       }
       var res = fn.bind(obj,1,2);
       res(1,2);

 

call apply