javascript - 如何混合方法来强调而不在全局范围内引入它们?

标签 javascript node.js npm underscore.js

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

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

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

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

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

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

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

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

最佳答案

创建一个函数,它将所有单独的函数作为 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>

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

关于javascript - 如何混合方法来强调而不在全局范围内引入它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33782383/

相关文章:

javascript - 如何加入npm命令?

java - Auth0升级到Node8

javascript - 是否有用于鼠标光标选择的文本的 javascript/jquery 选择器?

node.js - Next.js:如何在服务器端持久化数据以从页面调用访问它

node.js - Google Sheet API,需要但未指定 'valueInputOption'

node.js - 一个 NodeJS 服务器中有两个 Express "app"?

node.js - 为什么npm安装失败: Error Etarget?

javascript - ie8 上的 d3 svg 图表 (Windows XP)

javascript - 使用 Require.js 正确加载文件时遇到问题

javascript - 使用来自后端的 Regexp 进行 Angular 电子邮件验证