call
apply
用法:
fn.call(this,2,3,4)
fn.apply(this,[2,3,4])
区别在于参数,call
第一个参数是要改变的this,后面是参数列表,apply
第一个参数是要改变的this,第二个参数是以数组形式存在的参数列表
bind
用法:
bind()
最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的this
值。
var fn = function() {
console.log(this.age);
}.bind({age: 20})
fn(); // 20
注意:希望使用某个上下文调用该函数,请使用 .bind()
,这在事件中很有用。 如果要立即调用函数,请使用.call()
或 .apply()
,并修改上下文。