JS bind方法是如何实现的?有研究过源码的吗?
最近整理了一篇手撕bind方法的文章
一个疑问?
我们模拟实现bind方法,终归是通过apply实现的。而它源码是如何实现的,对于我来说就像一个黑盒。也就是说:不用apply,它是如何实现?
已经得到了我想要的答案
虽然..其他答友提到JS源代码的实现可能是C/C++
但是,感谢jsdeferred的解答,使得我能够不借助apply手撕bind
完整版手撕bind代码及逻辑实现过程已经整理到我的个人博客:Crushdada's Blog 以及思否文章
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
回想一下你问的这个问题
ECMA 只规定表现,具体如何实现取决于各家浏览器引擎。
以 V8 为例,相关源码主要散落在
src/runtime.cc
、src/profile-generator.cc
、src/factory.cc
等几个文件里,感兴趣的话可以自行阅读相关的 C/C++ 代码。P.S. 所有原生方法对你来说都是黑盒的,你要关心为啥只关心
apply
?直接看 w3c 的文档够直接了吧