Crear un objeto
• Medición directa de objetos
var o = {foo: "bar"}• Función del constructor
var o = nuevo objeto ();
• Prototipo de herencia
var p = object.create (o);
Herencia de clase
Los objetos JavaScript tienen sus propias propiedades y propiedades hereditarias.
• Al consultar el atributo x del objeto o, primero busque el atributo x en o. Si no se encuentra, busque el atributo X en el objeto prototipo de o hasta que X o un objeto cuyo prototipo es nulo se encuentra.
• Al asignar un valor al atributo x del objeto o, si ya hay una propiedad x en o, cambie el valor de x. Si no hay propiedad X en o, cree un atributo X para O y asigne un valor.
• Es decir, la cadena prototipo solo funcionará al consultar.
var o = {x: 1}; función p () {this.y = 2; } P.prototype = o; var t = new P (); console.log (t); console.log ('x' en t); // true console.log (t.hasownproperty ('x')); // falsoPuede usar o haownproperty para determinar si hay propiedades en el objeto.
Propiedades del objeto
• Transferir a través de las propiedades del objeto
Puede usar para ... en atravesar las propiedades de un objeto
Cuando se usa para ... en, itera sobre las propiedades de la cadena prototipo. El orden transversal es atravesar con prioridad
Por lo tanto, el uso de ASOWNProperty puede determinar si es el atributo propio de un objeto.
• Propiedades de las propiedades del objeto
Use Object.getOwnPropertyDescriptor () para obtener el descriptor para la propiedad específica de objeto
Writable significa si el atributo del objeto es WRITITY
Por ejemplo
var o = {foo: 'bar'} object.defineProperty (o, "foo", {writable: false}); o.foo = 'world'; console.log (o.foo); // Barra de salida todavíaEnumerable significa si el atributo del objeto es enumerable
Por ejemplo
El enumerable de la longitud y otros atributos en la matriz es falso, por lo que
para (p en matriz) {console.log (p);}Nada de salida
Configurable significa si se puede modificar la configurabilidad y la enumeración de las propiedades.
Estas propiedades de configuración se pueden definir usando Object.defineProperties.
Object.defineProperty (o, "foo", {Writable: false});
Obtener un método para obtener propiedades del objeto
SET representa un método para establecer las propiedades del objeto
Ejemplo
var book = {_Year: 2004, edición: 1}; objeto.defineProperty (libro, "año", {get: function () {console.log ('get año'); return this._year;}, set: function (newValue) {console.log ('set año'); if (newValue> 2004) {this._year) += newValue - 2004;Método de objeto
ToString convierte objetos en cadenas. La conversión predeterminada será algo así como [objeto de objeto], por lo que si necesita convertirla en formato JSON, puede usar json.stringify
El valor de Value debe usarse al convertir objetos a otros tipos. Del mismo modo, no hay nada que valga la pena decir sobre la conversión predeterminada.
Objeto ejecutable
Puede crear un objeto ejecutable mediante el siguiente método
Barra de funciones (o) {var f = function () {return "¡Hola mundo!"; } o .__ proto__ = f .__ proto__; f .__ proto__ = o; return f;} var o = {x: 5}; var foo = bar (o); console.log (foo ()); console.log (foo.x); console.log (typeof foo); //Se puede usar como un objeto (con una cadena prototipo) o en función llamarlo directamente