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
推荐阅读
- 鄂温克冬季马赛-30℃极寒开赛:寒冬中的火热派对
- 大雪@大雪腌肉 适当进补 今日大雪
- |电商事业中的“闪光少年”
- hadoop中的mapreduce链接(mapreduce chaining)怎样避免中间文件的产生
- 经观汽车|日系车企中的“异类”?东风日产将导入e-POWER技术大干增程式混动 | 经观汽车
- 中年|这些东西,比你想象中的还要大得多!
- 请问杨毅微博中的这两人是谁
- 某些公司招聘要求中的精通mysql是啥程度
- 宝宝|婴幼儿游泳——宝宝人生中的第一健身运动
- 汽车|你眼中的未来出行世界——YiMagazine x 道达尔