相同点:都是修改并定this指向;
不同点: 1.参数传入的不同; 2.调用方式的不同;
var objA = {
say(age) {
console.log(`objA say ${this.name}, age:${age}`)
}
}
var objB = {
name: 'objB'
}
// call
// 立即调用
// 参数是枚举类型
objA.say.call(objB, 12) // objA say objB, age:12
// bind
// 返回一个函数,后续等待调用
// 参数是枚举类型
objA.say.bind(objB)(13) // objA say objB, age:13
// apply
// 立即调用
// 参数是数组类型
objA.say.apply(objB, [14]) // objA say objB, age:14