const steven = {
name: "steven",
phoneBattery: 70,
charge: function (level1, level2) {
this.phoneBattery = level1 + level2
}
}
const becky = {
name:"backy",
phoneBattery: 35
}
// console.log(steven)
// steven.charge(100)
// console.log(steven) // 此时将会更改steven的值
// console.log(becky)
// steven.charge.call(becky, 90)
// console.log(becky) // 使用call,可以在becky上使用steven的charge的值
// console.log(becky)
// steven.charge.apply(becky, [90])
// console.log(becky) // 使用apply,就可以传入多个参数,但是需要用列表的方式传入
console.log(becky)
const beckyCharge = steven.charge.bind(becky) // 使用bind,将方法赋值到beckyCharge
beckyCharge(90,2) // 直接使用该方法,有两个参数,则直接传两个进入即可
console.log(becky)
使用call,可以在becky对象使用steven对象的方法;
使用apply,与call方法类似,但是可以使用多个参数;
使用bind,可以讲steven对象的方法赋值给一个变量,然后直接使用beckyCharge变量即可。