我只是想知道是否有任何最佳/推荐的方法将变量放入节点js所需的模块中?应该避免什么?
到目前为止,我知道以下方法:
按功能参数
mymodule = require('./modules/mymodule.js')(varA,varB);
... and ...
module.exports = function (varA, varB) {}
不知道怎么称呼它?
mymodule = require('./modules/mymodule.js').varA;
... and ...
module.exports = function (varA, varB) {
console.log(varA)
}
通过setter类
mymodule = require('./modules/mymodule');
... and ...
module.exports = function () {
var that = this;
this.varA = null;
this.setVarA = function(varA) {that.varA = varA:}
}
谢谢,我真的很感谢你的专家
答案 0 :(得分:0)
我认为您尝试做的一种方法是使用setter和getter在模块中创建一个对象:
function MyObject( varA ) {
this._varA = varA;
}
MyObject.prototype.setVarA = function( varA ) {
this._varA = varA;
}
MyObject.prototype.getVarA = function() {
return this._varA;
}
module.exports = MyObject;
并使用
var MyObject = require( './myModule' );
var myObjectInstance = new MyObject( "someValue" );
console.log( myObjectInstance.getVarA() ); //logs someValue
myObjectInstance.setVarA( "anotherValue" );
console.log( myObjectInstance.getVarA() ); //logs someOtherValue
这篇MDN Working With Objects文章提供了一些与此相关的好信息。
上面的方法对于你正在寻找的东西可能有点过分,所以你只需要一个对象文字即可做更简单的事情:
module.exports = function( varA ) {
return {
varA : varA
};
};
并使用
var myModule = require( './myModule' )( "someValue" );
console.log( myModule.varA ); // logs someValue