ci sono diversi modi per restituire più valori in JavaScript. Sei sempre stato in grado di restituire più valori in un array:
function f() {
return [1, 2];
}
e accedervi in questo modo:
var ret = f();
document.write(ret[0]); // first return value
Ma la sintassi è molto più bello in JavaScript 1.7 con l'aggiunta di destrutturazione assegnazione (se siete fortunati abbastanza per essere di mira un ambiente garantito per sostenerla (ad esempio, un'estensione per Firefox)):
var a, b;
[a, b] = f();
document.write("a is " + a + " b is " + b + "<br>\n");
Un'altra opzione è quella di restituire un oggetto letterale contenente voi valori di R:
function f() {
return { one: 1, two: 2 };
}
che possono poi essere accessibili per nome:
var ret = f();
document.write(ret.one + ", " + ret.two);
E, naturalmente, si potrebbe fare qualcosa di veramente orribile come modificare portata globale o in anche impostare sulla funzione stessa:
function f() {
f.one = 1;
f.two = 2;
}
f();
document.write(f.one + ", " + f.two);
di più la lettura (e la fonte di alcuni di questi esempi):
https://developer.mozilla.org/en/New_in_JavaScript_1.7#Destructuring_assignment_(Merge_into_own_page.2fsection)
fonte
2011-02-08 20:05:34
quindi qualcosa come passare per riferimento? – kjy112
Credo che qualcosa sulla falsariga di restituire un array associativo sarebbe il modo javascript per andare, ma se stai cercando di replicare il passaggio per riferimento, questo potrebbe essere interessante: http://sirdarckcat.blogspot.com/2007/07/ passando riferimento a javaScript.html – kloffy
@kloffy che il post sul blog è pieno di errori e incomprensioni - non mi affiderei per nulla di tutto – Pointy