首页 > 移动平台 > 详细

apply()与call()详解

时间:2019-06-21 21:45:04      阅读:96      评论:0      收藏:0      [点我收藏+]

 

两者使用的目的:改变调用的函数体内部的this的指向。

相同点:均是调用某对象的方法,格式:obj.函数名.call()

call(obj,参数1,参数2):两个参数,前者将代替Function类里this对象,后者(多个元素)作为参数传递给被调用的函数。

var foo = {
  name:"mingming",
  logName:function(){
    console.log(this.name);
  }
}
var bar={
  name:"xiaowang"
};
foo.logName.call(bar);//xiaowang

apply(obj,[参数1,参数2]),同上,不同点是第二个参数是数组。(将数组的每个元素作为一个个参数传递给被调用的函数,性质与call()方法一样)

利用apply()这一特性的一些小场景

//求数组的最大值
var arr = [1,2,3,4,7,34,8]     
var max=Math.max.apply(null,arr)  //34   Math.max()参数不能为数组
//求数组的最小值
var max=Math.min.apply(null,arr) //1
//合并数组并返回新数组的长度
var arr1=new Array("1","2","3");
var arr2=new Array("4","5","6");
Array.prototype.push.apply(arr1,arr2); //6

 

apply()与call()详解

原文:https://www.cnblogs.com/hope-h/p/11066821.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!