Node.js:process.argv与process.ARGV

时间:2011-04-28 22:14:57

标签: javascript process node.js argv

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

ARGV只是历史性的延续,还是有目的?

2 个答案:

答案 0 :(得分:10)

process.ARGV以来

v0.5.10removed entirely

答案 1 :(得分:4)

它们完全相同:

node.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)。

通过查看其他符号,我猜它是为了保持一致而添加的 - argvenv似乎是唯一两个同时具有大小写版本的符号。但是,ENVenv略有不同 。也许作者认为argvARGV可能与envENV的方式不同?