2011-02-02 15 views
6

Voglio dichiarare array associativo nell'argomento della funzione in - è possibile ??È possibile dichiarare un array associativo nel chiamante della funzione?

questo codice non funziona ..

<a href="javascript:functionName(new Array('cool'=>'Mustang','family'=>'Station'))">click</a> 

che il codice sta lavorando - è l'unico modo?

<script> 
    var my_cars= new Array() 
    my_cars["cool"]="Mustang"; 
    my_cars["family"]="Station"; 
</script> 

<a href="javascript:functionName(my_cars)">click</a> 
+1

perché si preferisce il primo modo? generalmente nessuno o il meno possibile javascript dovrebbe essere nel tuo html – Matt

risposta

20

Stai cercando di utilizzare la sintassi PHP in Javascript.

È necessario utilizzare la sintassi JavaScript per creare un oggetto letterale:

functionName({ cool: "Mustang", family: "Station" }); 
10

Non usare "new Array()" quando invece si è un oggetto con le stringhe come nomi di proprietà:

var my_cars = {}; 
my_cars["cool"]="Mustang"; 
my_cars["family"]="Station"; 

o solo

var my_cars = { 
    cool: 'Mustang', family: 'Station' 
}; 

array sono destinati a supporta le proprietà con indice intero e mantiene anche la "lunghezza" dell'elenco delle proprietà con indice intero automaticamente (beh, la lunghezza "concettuale").

6

Questo funzionerà.

<a href="javascript:functionName({'cool':'Mustang','family':'Station'})">click</a>

In JS Objects are associate arrays

+0

Aravindan R, Grazie mille! Saluti – quardas

Problemi correlati