函数 call, apply, bind 的异同
· 阅读需 1 分钟
每一个函数都有这三个方法,平时也不怎么能用到,整的时间长不看真容易迷糊...
function Fn(){}
函数 Fn,可调用 Fn.call()
, Fn.apply()
, Fn.bind()
,下面细说。
const person = {
name: 'Lee',
say: function (greet) {
console.log(`${greet}, I'm ${this.name}`)
}
}
const dog = { name: 'coco' }
person.say('hi') // hi, I'm Lee
person.say.apply(dog, ['woof']) // woof, I'm coco
person.say.call(dog, 'woof') // woof, I'm coco
let person_dog = person.say.bind(dog, 'woof')
person_dog() // woof, I'm coco