function greet(message) {
console.log(`${message}, ${this.name}`);
}
const person = { name: 'John' };
greet.call(person, 'Hello'); // 输出: Hello, John
function greet(message) {
console.log(`${message}, ${this.name}`);
}
const person = { name: 'Jane' };
greet.apply(person, ['Hi']); // 输出: Hi, Jane
function greet(message) {
console.log(`${message}, ${this.name}`);
}
const person = { name: 'Bob' };
const greetPerson = greet.bind(person, 'Hey');
greetPerson(); // 输出: Hey, Bob
都可以用来改变函数的 this
指向
call()
和apply()
会立即调用函数,而bind()
不会立即调用,而是返回一个新的绑定函数。call()
接受的参数是逐个列出的,而apply()
接受的是一个数组或类数组对象作为参数。