2011-01-07 14 views
21
var obj = { 
    'foo' : 'bar', 
    'something very, very, very, very long' : 'baz' 
}; 

¿Hay algún límite en cuanto al nombre de la propiedad?¿Cuál es el límite en la longitud de una propiedad javascript?

+6

Sólo traté de crear con uno a más de 1 millón de caracteres. Funcionó bien en cromo. Te mantendré informado si alcanzo un límite :) –

+0

@David lol! Eso es muy bonito. – Stephen

+1

@David, si pones eso en una respuesta, te daré la marca de verificación. – sprugman

Respuesta

20

De mis breves estudios empíricos, no hay límite impuesto por javascript, al menos no como implementado por Chrome. Se trata simplemente de la cantidad de memoria que su máquina permite que consuma el motor de scripts antes de que la aplicación falle.

Durante mis pruebas, logré crear un objeto que contiene una propiedad con un nombre de 268 435 456 caracteres, pero al intentarlo de nuevo en 536 870 912, mi navegador se bloqueó.

No creo que sea de interés encontrar mi umbral con mayor precisión que eso, ya que esto debería demostrar que cualquier límite que exista, está completamente impuesto por la capacidad de la máquina, más bien que por especificaciones.

Ah, y en 67 108 864 caracteres, empecé a notar problemas de rendimiento al asignar propiedades :)

+2

La especificación no incluye un límite en la longitud de los identificadores, así que creo que es simplemente una implementación definida. – ChaosPandion

Cuestiones relacionadas