call apply bind的使用示范
时间: 2024-05-06 19:21:47 浏览: 18
call、apply 和 bind 都是 JavaScript 中用来改变函数执行上下文的方法。
call 和 apply 的作用是改变函数执行时的 this 指向,并立即执行该函数。它们的主要区别在于参数的传递方式不同:call 方法将参数作为参数列表进行传递,而 apply 方法将参数作为数组传递。
比如,以下代码将会改变函数 foo 中的 this 指向,并将参数 1 和 2 传递给该函数:
```
function foo(a, b) {
console.log(this, a, b);
}
foo.call({ name: 'Alice' }, 1, 2); // 输出: { name: 'Alice' } 1 2
foo.apply({ name: 'Bob' }, [1, 2]); // 输出: { name: 'Bob' } 1 2
```
bind 方法也可以改变函数执行时的 this 指向,但它会返回一个新的函数,而不是立即执行原函数。该新函数的执行上下文已经被绑定了,不会再改变。可以先传入一些参数,然后在调用时再传递其余参数。
比如,以下代码将会创建一个新的函数 bar1,它的 this 指向对象 { name: 'Charlie' },并将参数 1 和 2 作为参数传递给原函数:
```
function bar(a, b) {
console.log(this, a, b);
}
var bar1 = bar.bind({ name: 'Charlie' }, 1, 2);
bar1(); // 输出: { name: 'Charlie' } 1 2
```
希望这个回答可以帮到你!