Estoy llamando a una función como esta:

myfunc($tab, {'top-left', 'bottom-left'}, defaults.tabRounded);

La definición de la función es:

function myfunc(obj, properties, value) {

Sin embargo, aparece el error "Inicializador de objeto no válido". ¿Es esto por el argumento json? ¿O algo mas?

5
Wesley 18 jul. 2011 a las 16:54

4 respuestas

La mejor respuesta

Reemplazar

myfunc($tab, {'top-left', 'bottom-left'}, defaults.tabRounded);

Con

myfunc($tab, ['top-left', 'bottom-left'], defaults.tabRounded);

{'top-left', 'bottom-left'} no es un objeto, pero {'top-left': 0, 'bottom-left': 10} es un objeto. Supuse que podría haber querido una matriz en lugar de un objeto.

6
Joe 18 jul. 2011 a las 12:56

Los objetos de JavaScript son pares clave / valor:

{
    'top-left': 333,
    'bottom-left': 444
}

https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects#Using_Object_Initializers

2
Álvaro González 18 jul. 2011 a las 12:56

Probablemente quiera pasar la matriz, no oponerse a la función:

myfunc($tab, ['top-left', 'bottom-left'], defaults.tabRounded);

De lo contrario, si desea pasar un objeto, debe especificar valores para las claves. Algo como:

myfunc($tab, {'top-left': 100, 'bottom-left': 100}, defaults.tabRounded);
0
bjornd 18 jul. 2011 a las 12:57

Debe nombrar las propiedades como {x: 'foo', y: 'bar'}, ya que estos siempre son pares clave-valor.

0
yan.kun 18 jul. 2011 a las 12:57