JavaScript和常量

时间:2013-07-26 07:14:05

标签: javascript node.js

你们怎么看待在Javascript中制作常量?我想以最好的方式做到这一点。 我知道常量并不存在,但我写了这个,我无法在导出后更改值。

是否需要常数?

有解决方法吗?

我们如何在全球范围内使用它们(没有require('const')); ?

// Const
var constants = {
    'PATH1' : __dirname + '/path..../',
    'PATH2' : __dirname + '/path/..../'
};
module.exports = function(key) {
    return constants[key];
};
//console.log(constants('PATH1'));

如果我得到一些反馈,比如您对这些问题的看法,我会很高兴的。

祝你今天过得愉快。

2 个答案:

答案 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测试。