首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Underscore.js封装回调效率

Underscore.js封装回调效率
EN

Stack Overflow用户
提问于 2014-11-05 14:17:39
回答 2查看 198关注 0票数 2

我有个关于带注释的underscore.js源代码的问题

上面写着:

内部函数,该函数返回传入回调的有效版本(对于当前引擎),以便在其他下划线函数中重复应用。

代码语言:javascript
复制
var createCallback = function(func, context, argCount) {
    if (context === void 0) return func;
    switch (argCount == null ? 3 : argCount) {
        case 1: return function(value) {
            return func.call(context, value);
        };
        case 2: return function(value, other) {
            return func.call(context, value, other);
        };
        case 3: return function(value, index, collection) {
            return func.call(context, value, index, collection);
        };
        case 4: return function(accumulator, value, index, collection) {
            return func.call(context, accumulator, value, index, collection);
        };
    }
    return function() {
        return func.apply(context, arguments);
    };
};

明确地说,如何在这个代码块中达到效率?

因为我看到,使用包装器,创建了一个多级别的间接,而作用域链又增长了一个二级。

我需要了解如何达到效率,以便在我自己的js中应用这个技巧。

谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2014-11-05 14:47:43

论点顺序似乎有些混乱,但如果以后的论点空空如也,其中一些情况实际上是等价的。我认为这种逻辑也可能使回调与浏览器优化很好地结合在一起。例如,如果返回值是可预测的,那么结果可能是内联的,而不是每次调用实际的函数。下面是有关性能和参数的相关讨论,在这些讨论中,测试显示了一些巨大的速度差异:

未定义参数的性能惩罚

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26759412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档