sort reorder ordenar objects multidimensional array javascript arrays object freeze

reorder - sort object javascript



''Congelando'' Arrays en Javascript? (1)

Sí, la congelación debería funcionar para Arrays, el comportamiento que está experimentando es claramente un error de implementación.

Este error podría estar relacionado con el hecho de que los objetos de la matriz implementan un método interno [[DefineOwnProperty]] (la magia que hace que la propiedad de length funcione).

Acabo de probarlo en dos implementaciones y funciona correctamente (Chrome 16.0.888 y Firefox Aurora 8.02a).

Sobre la segunda pregunta, bueno, los objetos de matriz heredan de Array.prototype que hereda de Object.prototype , por ejemplo, puede acceder a métodos no sombreados desde Object.prototype directamente en objetos de matriz:

[''a''].hasOwnProperty(''0''); // true

Pero esto no está relacionado con la forma en que funciona typeof , este operador devolverá ''object'' para cualquier intención de objeto, independientemente de su tipo, y para el valor null , del cual la gente siempre se ha quejado.

El resto de los posibles valores de retorno del operador typeof , corresponden a los tipos primitivos del idioma, Número, Cadena, Booleano, Símbolo y No definido.

Desde las especificaciones de ECMA-262, Javascript ha obtenido el método Object.freeze () , que permite objetos, cuyas propiedades no se pueden cambiar, agregar o eliminar.

var obj = {''a'':1, ''b:2''}; Object.freeze(obj); Object.isFrozen(obj); // returns true obj.a = 10; // new assignment has no affect obj.a; // returns 1

Hasta ahora tan bueno.

Me pregunto si Freeze () también debería funcionar en Arrays.

var arr = [1, 2]; Object.freeze(arr); Object.isFrozen(arr); // returns true arr[0] = 10; arr; // returns [10, 2] ... ouch!

Tal vez me equivoque, pero tenía la impresión de que Array hereda de Object.

typeof obj // "object" typeof arr // "object"

Cualquier idea, punteros, iluminaciones serían altamente apreciados.