call
为何使用 call? 当我们期望从一个对象借用某个函数,并将其运用到另一个对象上时,就会用到 call 。
call 是什么? call 是一种能让不同对象使用某个函数的手段,就好像该对象原本就具备这个函数。
call 怎样运作? 从一个对象获取一个函数,然后用另一个对象去调用它,并向函数表示:“嘿,把这个其他对象当作你的 this 。”
示例: 设想您有两个朋友,小敏和小刚。小敏清楚如何进行自我介绍,但小刚不了解。您能够借助小敏的方式来协助小刚。
const alice = { name: 'Alice', introduce: function(greeting) { console.log(`${greeting}, my name is ${this.name}`); } }; const bob = { name: 'Bob' }; alice.introduce.call(bob, 'Hello'); // 输出: Hello, my name is Bob
apply
为何使用 apply? 我们使用 apply 的原因和 call 相同,只不过是在想要以数组形式传递参数的时候。
apply 是什么? apply 与 call 相似,但它接收的是数组形式的参数,而非单个的参数。
apply 怎样运作? 从一个对象