因此,您在包中添加了一系列下划线方法:
_.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/