尝试使用nodejs开发模块。我的代码是这样的:
var fs = require('fs');
module.exports.method1 = function () {
// Some stuff
}
module.exports.method2 = function ()
{
// Some stuff
}
我想做点什么:
module.exports.method2 = function (url, dir, name)
{
this.method1();
}
怎么做?
答案 0 :(得分:2)
var fs = require('fs');
exports.method1 = function () {
// Some stuff
}
exports.method2 = function ()
{
exports.method1();
}
答案 1 :(得分:0)
为了让它变得有点笨拙,你可以做类似的事情:
module.exports = {
function1: function(){
//some stuff
},
function2: function(){
this.function1();
}
};
如果你想要私人范围:
module.exports = function(){
var myPrivateVar = 'foo';
var publicObject = {
function1: function(){
//some stuff
console.log(myPrivateVar);
},
function2: function(){
this.function1();
}
};
return publicObject;
}
不同之处在于,您需要在前者只是对象引用的地方调用它。第二个例子更像是构造函数... require + invoke ... var myMod = myModule(); myMod.function2()将输出'foo'
恕我直言,这是一种更加面向对象的方式,而不是导出每个单独的功能。这样可以实现更好的分离和更清晰的代码。