![]() |
1
14
首先,修复了jsperf http://jsperf.com/bind-vs-emulate/13 . =您不应该在基准测试中重新创建静态函数。这是不现实的,因为在实际代码中,静态函数只创建一次。
你可以看到
不,内置的绑定语义复杂得离谱。 当我绑定时,我只想要这样:
如果我想预先应用参数或使用一些深层构造函数的黑魔法,我会想要一个完全不同的函数。我不知道为什么这些都包含在绑定中。 <咆哮>顺便说一句,ES5中引入的几乎所有东西都存在同样的问题,通过强制实现处理一些理论上与实践中的任何人都不相关的边缘情况来惩罚常见情况。下一个语言版本将在同一路径上继续</咆哮> 模拟绑定甚至根本不尝试模拟绑定。即使你试图模仿它,你也无法 完全这样做是不公平的。 因此,在其他条件相同的情况下,内置绑定不能比只绑定的常识性自定义绑定更快。 *在JIT中,用户代码与内置代码相比没有明显的缺点。事实上,SM和V8都实现了许多内置功能 在Javascript中。 |
![]() |
2
0
目前,2013年底,最好的解决方案将是实施
手工制作的
的版本
因此,我认为没有必要将所有内容重写回闭包(丑陋
更多详细信息和工作代码示例如下: http://jsperf.com/function-bind-performance/4 http://jsperf.com/function-bind-performance/5 http://jsperf.com/bind-vs-emulate/4 .. 10.
总结:找到的变通办法并没有那么糟糕。勇敢地使用它们。如果您使用的不是全功能
|
![]() |
alexandernst · V8快照二进制文件规范/调试 7 年前 |
![]() |
4ntoine · V8断言“调试检查失败:ThreadId::Current()。等于(compilation\u info()->isolate()->thread\u id())`失败 7 年前 |
![]() |
Matt · v8在C中从nodejs中提取全局对象++ 7 年前 |
|
Vlad Cristescu · 函数使用v8读取二进制文件 8 年前 |
![]() |
Daniel Krom · 节点JS[]。forEach未定义 8 年前 |