我注意到Node定义了process.argv
和process.ARGV
(大写)。文档中没有提到后者,到目前为止,我遇到过的是同一个对象。
ARGV
只是历史性的延续,还是有目的?
答案 0 :(得分:10)
process.ARGV
以来 v0.5.10
已removed 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
)。
通过查看其他符号,我猜它是为了保持一致而添加的 - argv
和env
似乎是唯一两个同时具有大小写版本的符号。但是,ENV
与env
略有不同 。也许作者认为argv
和ARGV
可能与env
和ENV
的方式不同?