/**
* call、apply、bind
* 作用:改变this指向
* 共同点:都能够改变函数执行时的上下文,将一个对象的方法交给另外一个对象执行
* 调用call和apply的对象,必须是一个函数
* call和apply写法不同,apply接受的参数是数组或者类数组,call直接接受参数,两者都是立即执行
* bind返回值是函数,必须调用才能执行
*
*/
const steven = {
name: 'Steven',
phoneBattery: 70,
charge: function (level1, level2) {
this.phoneBattery = level1 + level2
}
}
const becky = {
name: 'Becky',
phoneBattery: 30
}
// console.log(steven)
// steven.charge(100)
// console.log(steven)
console.log(becky)
// steven.charge.call(becky, 60, 30)
// steven.charge.apply(becky, [50, 30])
const beckyCharge = steven.charge.bind(becky)
beckyCharge(40, 50)
console.log(becky)
console