JS数组中的apply含义

apply() 的作用是改变执行的执行环境。
就是说数组 没有min这个方法,但是Math对象可以求最小值,有min这个方法
例如 var a = Math.min(3,2,1,4),那么a将赋值为1
一个数组想使用Math对象的min方法,就需要使用call/apply来改变执行环境了。
Math.min(3,2,1,4)等价于 Math.min.apply(null, [3,2,1,4]),null是上下文,传入的对象对应函数中的this,min函数并没有使用this,因此这里可以为null,[3,2,1,4]是给min函数的参数列表。

var A = { 
  a: 1
}

A.add = function( b ){
  console.log(this.a + b);  // 这里的this是A
}

A.add(3); // => 4

var B = {
  a: 4
}

A.add.apply(B,[3]);  // => 7, add函数中的this 换成了B
Function.apply(obj,args)方法能接收两个参数  
obj:这个对象将代替Function类里this对象  
args:这个是数组,它将作为参数传给Function(args-->arguments)  
**********************************
 call:和apply的意思一样,只不过是参数列表不一样.  
  
Function.call(obj,[param1[,param2[,…[,paramN]]]])  
obj:这个对象将代替Function类里this对象  
params:这个是一个参数列表  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 有人说过,很多弯路到最后都成了直路,所有的坑到最后也都成了坦途;所谓的直路和坦途并不是摆在眼前的,都是不断的的...
    老衲法号一眉道人阅读 1,378评论 0 4
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,703评论 0 6
  • 20多岁的女孩子,该怎么样和父母相处,才能度过更年期,这个问题很严重。 这个更年期的主人,当然是妈妈。 本月刚一开...
    e158941a122d阅读 243评论 0 0