如何在不全局引入方法的情况下将方法混合到下划线中

How to mixin methods to underscore without introducing them globally?

本文关键字:方法 情况下 混合 下划线 全局      更新时间:2023-09-26

因此,您在包中添加了一组方法来下划线:

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

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

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

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

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

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

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

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

_.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>

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

相关文章: