我正在尝试构建一个node.js模块,我可以在其中扩展我的模块(如jquery插件),并使这些插件的功能可链接。
根据我的理解,如果我从模块返回更新的对象,它们应该是可链接的。 (我从这里得到http://javascriptissexy.com/beautiful-javascript-easily-create-chainable-cascading-methods-for-expressiveness/)
到目前为止,这就是我所拥有的,而且我不确定我哪里出错了。
我用
构建我的对象 var my_obj = new MyObj(json_obj);
var modules = ['get_and_set']; // an array for plugins to be included
MyObj.prototype.core_function = function(){
// does something and returns
}
if(modules){
modules.forEach(function(module){
MyObj.prototype = require(module);
});
}
// then I export my module
module.exports = my_obj(json_file);
然后,在我的子模块中,我导出了我试图添加到模块中的命名函数。
module.exports.get = function(){
return this.value;
}
module.exports.set = function(x){
this.value=x;
return this;
}
当我运行测试时,节点会发出错误has no method get
或has no method set
。
有没有更好的方法让我扩展MyObj而无需手动定义导出模块中包含的方法?我在做链接吗?