立即调用(call now)
在 javascript
中,call
和 apply
都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。
JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。
区别:作用一样,接受参数的方式不一样
其中 this 是你想指定的上下文,他可以是任何一个 JavaScript 对象(JavaScript 中一切皆对象),call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里。
例如有一个函数定义如下
let fun = function(arg1,arg2){
}
call()
传参
fun.call(this,arg1,arg2)
apply()
传参
fun.apply(this,[arg1,arg2])
实例demo
获取数组中的最大值和最小值
var numbers = [5, 458 , 120 , -215 ];
var maxInNumbers = Math.max.apply(Math, numbers)