最新的 Web Browser 都已经有 Function.prototype.bind 的 native 实现,但是一些较老版本的 Web Browser 是不支持的(比如 IE8)。
不过没关系,完全可以用 JavaScript 本身来实现。
更详细的文档可以参考
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
不过还有个地方不理解:fBound.prototype = new fNOP();
有人可以解答一下吗?
我自己有个简化的实现,去掉了 prototype 相关的处理,详见
http://www.linuxtimes.cn/2013/10/02/js-function-prototype-bind/