函数----call()和apply()的异同

相同点:

  (1)作用相同:call()和apply()都能改变this指向,都是调用一个对象的一个方法,用另一个对象替换当前对象;

  (2)第一个参数:第1个参数都是对象。

不同点:

  (1)参数不同:

    call()不定参,call(obj,arg1,arg2,arg3...)

    apply()只有2个参数,apply(obj,[arg1,arg2,arg3...])

  (2)apply还可以应用于数组取最大值和最小值:

     Math.max.apply(null,array)
   Math.min.apply(null,array)        

  (3)apply还可以实现两个数组的合并:

  var arr=new Array("1","2");
  var list=new Array("3","4");
  Array.prototype.push.apply(arr,list);    
  //push返回合并后数组的长度

猜你喜欢

转载自www.cnblogs.com/snowstorm22/p/10274563.html