如何在不全局引入方法的情况下将方法混合到下划线中
How to mixin methods to underscore without introducing them globally?
因此,您在包中添加了一组方法来下划线:
_.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
相关文章:
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- 在不重新加载的情况下更改标头URL的任何方法
- 为什么jQuery悬停方法在这种情况下不起作用
- 可以“;超级“;可以在子类的方法内部使用,在不直接引用的情况下调用相应的超类方法
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 有没有任何情况下,一个方法不应该是原型方法
- 为什么push方法没有'在这种情况下不起作用:[].推
- 使用javascript:在没有阻止html标记(<b>、<p>等)的情况下,阻止脚本的最佳方法
- 在某些情况下,“text”方法会删除单词之间的空格
- Rx-subscribe方法如何在不传递上下文的情况下保留上下文
- 如何在不更改URL的情况下使用HTTP方法POST
- 有没有一种方法可以在没有谷歌云控制台的情况下使用带有JavaScript的谷歌硬盘
- 在不使用@syntax的情况下修饰ES6类方法
- 谷歌应用程序脚本:如何在不使用getComment()方法的情况下将第二条注释添加到第一条注释中
- 在这种情况下,有什么方法可以向`.call()`发送更多的参数吗
- 有没有一种方法可以在没有jQuery的情况下获得JavaScript中当前添加到后台的事件列表
- 有没有一种方法可以在没有视口元标记的情况下获得硬件像素中的真实视口大小
- 有没有一种方法可以让jQuery日期选择器在没有年份的情况下工作
- 在不更改域名的情况下拥有多语言网站的方法