如何将方法混合到下划线而不在全球引入它们?

时间:2015-11-18 14:15:58

标签: javascript node.js npm underscore.js

所以你有很多方法可以在你的包装中加以强调:

_.mixin({
    foo: function() {},
    bar: function() {} //etc
});

但是你不想冒险与主应用程序或其他软件包冲突,防止这种情况的最佳方法是什么?

我正在考虑的两个选项是在我的方法之前添加一些下划线或者将下划线强调到另一个前导字符,例如:U.foo,但是当你通过以下方式克隆它时:

U = _;
_.extend(U, _)

当你现在这样做时,U和_都会得到你的方法:

U.mixin({
   foo: function() {}
});

如果不添加额外的代码来增加文件大小,我还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

创建一个函数,将所有单独的函数作为props返回:



_.mixin({
    ns:function(){
        return {
            baz:function(){
                document.write('baz');
            }
        }
    }
});
_.ns().baz();

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
&#13;
&#13;
&#13;

现在,您的所有函数都有自己的命名空间ns