理解lodash中的快速替代apply()

时间:2015-11-16 08:20:21

标签: javascript lodash

我阅读了lo-dash的源代码,发现函数<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> here可以快速替代。

<style name="AppTheme.TextView" parent="@android:Widget.TextView">

我想知道实现快速替代函数apply()的真正有效方法吗?为什么在这里分解不超过3个args?

2 个答案:

答案 0 :(得分:2)

您需要对测试速度差异进行测试才能确定。

请参阅此SO帖子,了解电话和申请之间的速度差异:

Why is call so much faster than apply?

所以它不是真的更快&#34; apply,只要它可以执行调用。

这将需要3个以上的参数,最后一行是一个所有调用标准的catch。

据推测,_lodash认为有一个巨大的长开关来确定传递了多少参数会使目的失败,并决定将其限制为三个。

答案 1 :(得分:-1)

简单的答案:它针对常见情况进行了优化。这里最快的路径是调用一个没有任何参数的函数(这是交换机中的第一种情况)。事实证明,这是调用函数的最常用方法。接下来最常见的调用是1,2和3个参数。

使用4+个参数调用的函数非常罕见,因此没有理由在此处添加更多代码。