你们怎么看待在Javascript中制作常量?我想以最好的方式做到这一点。 我知道常量并不存在,但我写了这个,我无法在导出后更改值。
是否需要常数?
有解决方法吗?
我们如何在全球范围内使用它们(没有require('const')); ?
// Const
var constants = {
'PATH1' : __dirname + '/path..../',
'PATH2' : __dirname + '/path/..../'
};
module.exports = function(key) {
return constants[key];
};
//console.log(constants('PATH1'));
如果我得到一些反馈,比如您对这些问题的看法,我会很高兴的。
祝你今天过得愉快。
答案 0 :(得分:3)
在节点中使用全局变量很难/很难理由:全局变量很糟糕。
按照以下要求做你想做的事情:
// config.json
module.exports = {
somePath: "/foo",
anotherPath: "/foo/bar"
};
在档案中使用
// a.js
var config = require("./config");
config.somePath; //=> "/foo"
在另一个档案中使用
// b.js
var config = require("./config");
config.anotherPath; //=> "/foo/bar"
就在最近,在another question中,我深入探讨了如何在node.js中使用全局变量完全没必要
答案 1 :(得分:0)
这是个坏主意,但可以做到。我只在Node.js中测试过这个。它可能在浏览器中有效,也可能无效。如果您将global
替换为window
,它可能会在浏览器中可靠地运行。
你走了:
<强> app.js:强>
Object.defineProperty(global, 'myConst', {
get: function() {
return 5;
}
})
myConst = 6
console.log(myConst) //5
运行如:
node app.js
使用v0.10.3测试。