call 和 apply
- call的用法
- apply的用法
总结:call 和 apply 都可以改变this指向,第一个参数都为要传入的对象 ,而在后面的参数传入时,call 是以参数列表的形式,而 apply 则是以数组的形式
function foo() {
console.log(this);
}
foo.call(); //window
foo.call({ name: "Tom" }); //{name: 'Tom'}
foo.call(123); //Number {123}
foo.apply(); //window
foo.apply({ name: "Tom" }); //{name: 'Tom'}
foo.apply(123); //Number {123}
bind
我们希望一个函数总是显示的绑定到一个对象上,可以怎么做呢?
-
使用bind方法,bind() 方法不执行函数,而是返回一个绑定新this的函数
-
在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。