tratamiento síntomas sintomas sangre recto que primer objetos mujeres manifiesta llenar imagenes hay estomago eliminar elementos elemento cómo cáncer cuando contar color cancer avanzado array agregar javascript

javascript - síntomas - sintomas de cancer de colon y estomago



¿Cuál es la diferencia entre Array(1) y el nuevo Array(1) en JavaScript? (3)

Con Array , ambos son equivalentes. Lo new se inyecta cuando se llama como una función:

15.4.1 El Array Constructor llamado como una función

Cuando se llama a Array como una función en lugar de como un constructor, crea e inicializa un nuevo objeto Array. Por lo tanto, la función llamada Array(…) es equivalente a la expresión de creación de objeto new Array(…) con los mismos argumentos.

De ECMA-262, 3ª Edición (con similar en 5ª Edición ).

Solo comencé a pensar en esto, pero no pude encontrar ninguna diferencia para jsFiddle a jsFiddle mismo mientras jsFiddle en jsFiddle .

var a = new Array(1), b = Array(1); console.log(a, b);

La salida es dos matrices con un miembro indefinido.

Hacer un for ( in ) revela que tienen las mismas propiedades.

¿Cuáles son las diferencias entre estos? ¿El primero simplemente crea una instancia del objeto explícitamente?

Por favor, no me hable sobre el uso de la notación literal de matriz, como ya sé sobre eso. Estoy más deseoso de llenar este vacío en mi conocimiento explicado anteriormente.


La diferencia radica en la implementación de la función Array. Si una llamada a Array sin un nuevo operador devolverá una instancia de Array o no dependerá de la implementación. Por ejemplo, el motor SpiderMonkey de Mozilla hace esto:

static JSBool Array(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { jsuint length; jsval *vector; /* If called without new, replace obj with a new Array object. */

Ese es un comentario real de la fuente real. Las siguientes líneas de código no se reproducen aquí. Supongo que otros motores hacen lo mismo. De lo contrario, el comportamiento no está definido. Una buena lectura sobre este tema es la publicación de John Resig here .


Según Javascript: The Definitive Guide (5th Edition), página 602, "Cuando se llama al constructor Array() como una función, sin el new operador, se comporta exactamente como lo hace cuando se lo llama con el new operador".