call vs apply
Opened this issue · 0 comments
leslie1943 commented
call vs apply
-
call
和apply
的作用是一样的, 都是为了改变函数在运行时的上下文的, 为了改变函数体内部this
的指向 -
call
的参数是按个数传入的,apply
的参数是放到一个数组中进行传递
fn.call(this, p1,p2,p3)
fn.apply(this, arguments)
// demo FOR apply 🚀
const dog = {
name: 'Snoopy',
say(first, last) {
console.info(first + ' ' + this.name + ' ' + last)
},
}
const cat = {
name: 'Tom',
}
dog.say('Hello', 'World') // Hello Snoopy World
dog.say.apply(cat, ['Hello', 'World']) // Hello Tom World
// demo FOR call 🚀
const dog = {
name: 'Snoopy',
say(first, last) {
console.info(first + ' ' + this.name + ' ' + last)
},
}
const cat = {
name: 'Tom',
}
dog.say('Hello', 'World') // Hello Snoopy World
dog.say.call(cat, 'Hello', 'World') // Hello Tom World