var unboundBind = Function.prototype.bind
, bind = Function.prototype.call.bind(unboundBind);
请教为什么可以这样使用,这样使用的好处在哪里?
var unboundBind = Function.prototype.bind
, bind = Function.prototype.call.bind(unboundBind);
请教为什么可以这样使用,这样使用的好处在哪里?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
最终得到的bind函数可将任意方法和this绑定在一起,返回绑定后的新函数,相当于一个组合作用
示例:
分析:
1.
var unboundBind = Function.prototype.bind, bind =Function.prototype.call.bind(unboundBind);
2.
bind = unboundBind.Function.prototype.call;
3.
bind = (Function.prototype.bind).(Function.prototype.call)
调用bind函数:
var func = bind(method,this)
等效:
func = (Function.prototype.bind).(Function.prototype.call)(method,this)
化简:
func = method.bind(this)