是否可以在node.js中为模块变量定义一个set函数

时间:2014-11-19 18:39:33

标签: javascript node.js module

我发现你可以在node.js中执行get函数,如此

Object.defineProperty(exports, "g_myvar", {
 get: function() { return g_myvar; }
});

所以也许你可以做一个像这样的集合函数

Object.defineProperty(exports, "g_myvar", {
 set: function(val) { g_myvar = val; }
});

但两个导出函数都具有相同的名称,因此无法正常工作。我想我可以使用不同名称的函数,但这意味着将所有变量赋值更改为函数调用。

2 个答案:

答案 0 :(得分:1)

只需将它们组合起来:

Object.defineProperty(exports, "g_myvar", {
  get: function() { return g_myvar; },
  set: function(val) { g_myvar = val; }   
});

答案 1 :(得分:0)

在您的模块中

module.exports = {
   mySetter: function (value) {...},
   myGetter: function () {return ...}
};

并且你可以在任何地方使用你的模块,如

var myModule = require('my-module);
myModule.mySetter(...)
myModule.myGetter(...)

依旧......

或者我可能没有理解这个问题。