apply 和 call

apply 和 call

定义: apply和call更改对象的内部指针,即改变对象的this指向的内容其本质就是将特定函数当做一个方法绑定到指定对象上并进行调用

举个例子说明下就理解了:

fun.apply(obj)
其实就是将fun函数的地址赋值给obj的一个属性,此时fun函数内的this就指向了obj,(obj成了fun函数的所有者)我们就可以通过obj调用fun函数了

 console.log(Object.prototype.toString.apply(b));
  //等同于
   var b = [];
    b.a = Object.prototype.toString;
    console.log(b.a())
    delete b.a;
    console.log(b);

   

注意一点这种行为只是临时的,因为在调用完函数后会自动注销该方法.

apply和call 区别只是参数上的区别 apply 是数组,call不是

你可能感兴趣的:(JS)