bind、call、apply

99 阅读1分钟

作用

都可以用来改变this指向

不同

  • 传递参数的方式不同:
fn.call(obj,a,b)
fn.apply(obj, [a, b])

var f = fn.bind(obj,a,b)
f(c,d)
  • 返回值不同: call、apply绑定返回undefined,bind绑定返回一个新函数,独立调用这个新函数,它的this指向bind绑定的this

原理