在函数调用后放置数组有什么影响?

时间:2015-08-13 17:50:06

标签: javascript node.js

var env = process.env.NODE_ENV = process.env.NODE_ENV || 'development';

var config = require('./server/config/config.js')[env];

我的问题是关于第二行。我从来没有见过函数调用后你有数组的语法。 [env]的作用或意义是什么?

3 个答案:

答案 0 :(得分:2)

这是一个property accessor,而不是一个数组。后跟[variable]的对象用于动态访问对象的属性。它是config['development']的动态等价物,允许您在运行时选择属性。

您可以将该行分解为:

var config = require('./server/config/config.js');
config[env];

结合var env行,它将:

  1. 如果未设置变量,请将env设置为NODE_ENV环境变量的值或'development'
  2. 加载./server/config/config.js文件。
  3. 从配置文件中检索env属性。
  4. 例如,如果您的配置包含:

    {
      "development": {foo: 3},
      "production": {foo: 19}
    }
    

    并且没有设置任何环境变量,相关的行将从配置中获取"development"块。

答案 1 :(得分:0)

这实际上是使用括号表示法的成员对象访问,其中env将包含要检索的模块属性的名称。没有创建数组。

var config_module = require('./server/config/config.js');
var config = config_module[env];

答案 2 :(得分:0)

需要config.js文件的第二行看起来像是在拉入配置对象。在这种情况下,方括号表示法看起来像是用于根据当前环境访问此对象的属性。是否生产,开发等