considerare questa funzione JavaScript:Argomenti e di riferimento
var f = function (a) {
console.log(a+" "+arguments[0]);
a = 3;
console.log(a+" "+arguments[0]);
}
Mi aspetterei che a
e arguments[0]
riferimento lo stesso valore solo fino alla seconda affermazione della funzione. Invece essi sembrano riferirsi sempre lo stesso valore: f(2)
provoca
2 2
3 3
e f({foo: 'bar'})
cause:
[object Object] [object Object]
3 3
sono identificatori di argomento e l'identificatore arguments
legato in modo speciale?
Sì, ed è una brutta cosa e penso che cambierà comunque. –
Questo è un duplicato, penso, sono sicuro che a questo si fa riferimento da qualche parte..Io cercherò di scavare fuori – Liam
possibile duplicato di [È JavaScript un linguaggio pass-per-referenziale o pass-by-value?] (Http : //stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language) – Liam