码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2019-11-13 16:32:34      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:nbsp   family   font   ons   call()   第一个   javascrip   对象   cal   

(一)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()区别

标签:nbsp   family   font   ons   call()   第一个   javascrip   对象   cal   

原文地址:https://www.cnblogs.com/linjiu0505/p/11849938.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!