2011-04-28 11 views
9

Observo que el nodo define process.argv y process.ARGV (en mayúscula). Lo posterior no se menciona en la documentación y, en todos los casos que he encontrado hasta ahora, es el mismo objeto.Node.js: process.argv vs. process.ARGV

¿Es ARGV solo un remanente histórico, o tiene un propósito?

Respuesta

8

process.ARGV ha sido removed entirely desde v0.5.10.

+5

No se puede discutir con commits. :) –

4

Son idénticos:

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); 

Editar (basado en otra pregunta):

Sólo hay una persona que puede decir que para asegurarse de (el autor) - es posible que pueda encontrarlo en el IRC (irc.freenode.net #node.js).

Mirando a través de los otros símbolos, supongo que fue agregado por consistencia - argv y env parecen ser las únicas dos que tienen ambas versiones de mayúsculas y minúsculas. Sin embargo, ENV difiere ligeramente de env. Tal vez el autor pensó que argv y ARGV podrían diferir de la misma manera que env y ENV?

+0

Gracias, pero todavía me pregunto: ¿Para qué? –

+0

+1 para mostrar el código fuente original! El nodo –

+1

le avisa cada vez que utiliza el proceso.ENV: 'Use process.env en lugar de process.ENV'. Presumiblemente, estos están en desuso, pero se mantienen por compatibilidad con versiones anteriores. –