2011-02-02 11 views
6

Quiero declarar matriz asociativa en el argumento de función en - ¿es posible?¿Es posible declarar una matriz asociativa en la función llamante?

este código no funciona ..

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

que el código está trabajando - es la única manera?

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

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

¿por qué se prefiere la primera forma? generalmente ninguno o tan poco como sea posible javascript debe estar en su html – Matt

Respuesta

20

Está intentando usar la sintaxis de PHP en Javascript.

Es necesario utilizar la sintaxis de Javascript para crear un objeto literal:

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

No use "new Array()" cuando lo que quieres es un objeto con cadenas como nombres de propiedades:

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

o simplemente

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

matrices están destinados a soportan propiedades indexadas enteras, y también mantienen la "longitud" de la lista de propiedades indexadas enteras automáticamente (bueno, la longitud "conceptual").

6

Esto funcionará.

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

En JS Objects are associate arrays

+0

Aravindan R, ¡muchas gracias! aclamaciones – quardas

Cuestiones relacionadas