underscore中的optimizeCb是有啥效果

其实就是尽量用指定参数,而不是用 arguments 。
■网友
另一点是bind this value的问题。这个method实现了如果cb不bind this,就直接用。否则才调用call方法。由于call和apply的overhead都不小,给不用bind this的callback带来的性能收益是很大的。-----------js引擎access arguments这个magic array的性能差,所以都做成named parameter。并且underscore用到的callback只有几种signature,所以switch代码不臃肿。只有写lib的才需要这种程度的优化;不过尽量避免使用arguments也是一个js编程规范。
■网友
迭代!迭代!迭代! · undersercore源码分析。我写的分析,欢迎拍砖
■网友
英语注释应该已经说明要干啥了就是返回一个亮段执行的函数,首先捕获第一批提供的已知条件,留着待用然后你要激发的时候,就要看你第一次填的参数了那个switch为啥先判断undefined和null呢其实这是返回数组那几个迭代方法的迭代器函数,foreach map什么的很常用argCount是1的情况一般是用在接受单值的情况比如Promise或者fire, emit之类的函数2的情况这个应该是给比如jQuery,zepto的fireWith或者事件绑定,代理什么的,需要个ctx3的情况说了4那就是reduce和reduceRight呗总结下,为什么要提前绑定ctx,是因为像jquery这种经常为你绑上下文,上下文是this是非常有用的一个对象如果你不想用它为你绑的,那你就得提前绑,或者临时绑,但是问题是绑上下文有好多种情况,所以这个optimizeCb还是比较有用的
■网友
应该主要作用有1 绑定this作用域2 尽量使用指定参数,而不是arguments


    推荐阅读