Function.prototype.bind 的实现

sxmayo 2013-10-02 08:23:35
最新的 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/
...全文
167 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2013-10-03
  • 打赏
  • 举报
回复
Function.prototype.bind = function () { if (!arguments.length) return this; var _ = this, p = Array.prototype.slice.call(arguments), A = p.shift(); return function () { return _.apply(A, p.concat(Array.prototype.slice.call(arguments))) } };

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧