call() , apply() 与 bind() 详解
我们知道可以用call(), apply() 和 bind()这三个函数都是用来完成函数调用,并且设置this指向。 call()和apply()是
ECMAScript3 标准引入,而bind()函数则是在 ECMAScript 5 引入。 这边文章会用几个小例子来回忆一下他们之间有什么不一样。
用法
call()和apply() 会立即调用函数, 而bind()只会返回一个函数引用,当后面真正调用返回的函数的时候,函数里面的this将会指向给bind()
函数传入的参数,并在调用新函数时,将给定参数列表作为原函数的参数序列的前若干项, 所以 bind()函数非常适合在事件回调的时候修改this 指向, 有
React 经验的朋友应该会有更深的感受。
call()
var dist = 'Beijing';
function greet(name, hometown)