向现有模块化模式对象添加新方法
Adding a new method to existing modular pattern object
我有以下两个方法模块,A()
和B()
:
var Module = (function() {
function A(){
console.log("Module: A");
B();
};
function B(){
console.log("Module: B");
Module.Utils.C(); /* Here is the problem */
};
return {
A:A,
B:B
}
} ());
假设我想添加一个新方法C()
…
function C(){
console.log("C");
};
…到上面的模块,而不触及它,即,我不想改变Module
的现有代码,但扩展它有新的C
属性。
您需要在模块定义之后执行以下操作:
Module.Utils = Module.Utils || {};
Module.Utils.C = function(){
console.log("C");
};
第一行检查Module。Utils已经定义,如果没有定义则定义它。然后下一部分分配函数c。
如果你尝试只做Module.Utils.C = function(){ console.log("C"); };
,那么你会得到一个关于模块的错误。Utils未定义
我在这里创建了一个小提琴来显示它的工作:http://jsfiddle.net/u5R4E/
您可以动态地为对象添加方法:
Module.Utils.C = function(){
console.log("C");
};
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Meteor-将选定窗体中的对象添加到集合中
- 在play2框架中向json对象添加下拉列表项
- 如何在javascript上向数组的对象添加新元素
- JSON到对象数组,并向每个对象添加项
- 如何将一个对象添加到每个对象数组中
- 向Angular作用域对象添加对象数组——TypeError
- CoffeeScript将对象添加到数组中
- 如何从Addon SDK向选项卡对象添加进度侦听器
- 使用ja将对象添加到HTML画布中
- 向通过ReST JSON调用生成的Angular Javascript对象添加方法
- 将新对象添加到本地存储
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 使用游标循环将JS对象添加到数组中
- 向调用全局javascript函数的对象添加处理程序
- 将另一个文件中的对象添加到单独文件中的阵列中
- 将对象添加到数组中
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- sequelize为找到的对象添加值
- 向对象添加新方法和值,同时避免重复