2.javascript中call()和apply()区别

Posted 林玖女神

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.javascript中call()和apply()区别相关的知识,希望对你有一定的参考价值。

(一)apply()和call()的区别

apply接受两个参数,第一个参数指定了函数体内this对象的指向,第二个参数为一个带下标的集合,这个集合可以为数组,也可以为类数组,

apply方法把这个集合中的元素作为参数传递给被调用的函数。

let func = function(a,b,c){
    console.log([a,b,c])
}
func.apply(null,[1,2,3])  // [1,2,3]

 

call传入的参数数量不固定,跟apply相同的是,第一个参数也是代表函数体内的this指向,从第二个参数开始往后,每个参数被依次传入函数

let func = function(a,b,c){
    console.log([a,b,c])
}
func.call(null,3,4,5) // [3,4,5]

 

(二)apply()和call()用途

var obj1 ={
  name: ‘kim‘
}
var obj2 = {
  name: ‘john‘
}
window.name = ‘window‘;
var getName = function(){
  console.log(this.name);
}
getName(); // window
getName.call(obj1); // kim   this指向了obj1
getName.apply(obj2);  // john   this指向了obj2

 

 

以上是关于2.javascript中call()和apply()区别的主要内容,如果未能解决你的问题,请参考以下文章

Javascript中call和apply的区别与详解

js中call和apply的区别

在JS中,call()方法和apply()方法到底该怎么应用?

Js中call和apply的区别和用法是啥?

apply和call的用法

关于JS中apply和call详细解答