11

我注意到 Node 定义了process.argvprocess.ARGV(大写)。文档中没有提到后者,并且到目前为止我遇到的每种情况都是同一个对象。

只是ARGV历史性的保留,还是有目的?

4

2 回答 2

10

process.ARGV自 . 以来已被完全删除v0.5.10

于 2013-02-05T22:45:23.517 回答
4

它们是相同的:

节点.cc

// process.argv
Local<Array> arguments = Array::New(argc - option_end_index + 1);
arguments->Set(Integer::New(0), String::New(argv[0]));
for (j = 1, i = option_end_index; i < argc; j++, i++) {
  Local<String> arg = String::New(argv[i]);
  arguments->Set(Integer::New(j), arg);
}
// assign it
process->Set(String::NewSymbol("ARGV"), arguments);
process->Set(String::NewSymbol("argv"), arguments);

编辑(基于进一步的问题):

只有一个人可以肯定地告诉你(作者)——你也许可以在 IRC 上找到他(irc.freenode.net #node.js)。

查看其他符号,我猜它是为了保持一致性而添加的 -argv并且env似乎是仅有的两个同时具有小写和大写版本的符号。但是,ENV略有不同env。也许作者认为argvand可能与andARGV有相同的不同?envENV

于 2011-04-28T22:25:31.360 回答