¿Cuál es la diferencia entre cada una de las siguientes definiciones de matriz.Conjuntos de JavaScript llaves contra soportes
var myArray = [];
var myArray = {};
var myArray = new Array();
¿Cuál es la diferencia entre cada una de las siguientes definiciones de matriz.Conjuntos de JavaScript llaves contra soportes
var myArray = [];
var myArray = {};
var myArray = new Array();
El primero y el tercero son equivalentes y crean una nueva matriz. El segundo crea un nuevo objeto vacío, no una matriz.
var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array
var myObject = {};
es equivalente a var myObject = new Object();
Por lo tanto, el segundo ejemplo no es una Array
pero un general Object
.
Esto puede resultar confuso como Array
es una clase y Object
es una clase - más precisamente Array
es una subclase de Object
. Así que, en general, Object
semántica es aplicable a un Array
:
var o = [];
o.push('element1');
o.push('element2');
o['property1'] = 'property value'; // define a custom property.
console.log(o.property1);
console.log(o.length); // Outputs '2' as we've only push()'ed two elements onto the Array
donde se almacena la propiedad1. No está en la matriz – Pinkie
@Pinkie: Esto se está volviendo confuso ahora: * Las matrices también son objetos *. Al hacer 'o ['property1'] = 'property value'', en realidad no está agregando un elemento a la matriz, sino estableciendo una propiedad del * objeto de matriz *. ¿Confuso? Te lo dije;) En JavaScript, básicamente, todo es un objeto. Otros objetos, como 'Array',' RegExp', ... extienden el objeto básico con más funcionalidades. Un objeto simple, vacío se crea con los corchetes 'plain_obj = {}'. –
¿Cómo accedemos a los valores del objeto. – Pinkie
@Pinkie: Vea aquí: http://www.javascriptkit.com/javatutors/oopjs.shtml –
Con corchetes o notación de puntos: 'myObject [" someValue "]' or 'myObject.someValue'. El objeto vacío creado por '{}' por supuesto no tendrá esas propiedades, pero puede asignarlas de la misma manera: 'myObject.someValue =" hello! '' – johusman