SOURCE

/**
 *  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 命令行工具 X clear

                    
>
console