Las propiedades de los objetos en ES5 se pueden dividir en 'atributos de datos' y 'atributos del accesor'.
Los atributos de datos generalmente se utilizan para almacenar valores de datos. Los atributos de accesorios corresponden a las operaciones SET/GET, y los valores de datos no se pueden almacenar directamente.
Características del atributo de datos: valor, escritura, enumerable, configurable.
Explicación: Configurable: Verdadero/Falso, si el atributo se puede eliminar a través de Delete, si las características del atributo pueden modificarse y si el atributo se puede modificar en el atributo del accesor, predeterminado falso;
Enumerable: True/False, si se puede devolver a través de A For en bucle, predeterminado falso;
Writable: True/False, si el valor del atributo puede modificarse, el valor predeterminado es falso;
Valor: indefinido, establezca el valor de la propiedad, predeterminado indefinido.
Atributos del accesor: establecer, obtener, enumerable, configurable.
Explicación: Configurable: Verdadero/Falso, si el atributo se puede eliminar a través de Delete, si las características del atributo pueden modificarse y si el atributo se puede modificar en el atributo del accesor, predeterminado falso;
Enumerable: True/False, si se puede devolver a través de A For en bucle, predeterminado falso;
establecer: función, función llamada al leer los valores de las propiedades;
Get: función, función llamada al modificar el valor de la propiedad.
Agregue propiedades a los objetos o modifique las propiedades de las propiedades existentes utilizando el método Object.defineProperty () o Object.DefineProperties ();
Object.defineProperty (Object, PropertyName, Descriptor):
Explicación del parámetro: Objeto: un objeto que necesita agregar o modificar atributos;
Propertyname: el nombre de la propiedad, formato de cadena;
Descriptor: Descripción de atributos, configuración de propiedades de atributos de datos o atributos de accesorios.
Análisis de ejemplo:
Propiedades de datos:
var emp = {nombre: 'tom'}; Object.defineProperty (emp, 'nombre', {Writable: false}); emp.name = 'jery'; console.log (emp.name); // output tom, porque la escritura se ha establecido en falseObject.defineProperty (emp, 'edad', {configurable: falso, WRITITY: verdadero, valor: 22}); console.log (empe. 22emp.age = 25; console.log (emp.age); // salida 25, la configuración de la escritura es trueDelete emp.age; console.log (emp.age); // salida 25, configurable se establece en falso, esta propiedad no se puede eliminarPropiedades del accesor:
var emp = {_ nombre: 'tom', _ edad: 20}; object.defineProperty (emp, 'name', {get: function () {return this._name;}}); console.log (emp.name); // Útil, devuelve el valor de _ne Método, el valor de _name no se puede modificar objeto.defineProperty (emp, 'edad', {configurable: true, get: function () {return this._age;} set: function (age) {this._age = age;}}}); emp.age = 25; console.log (emp.age) // output 25, emp.age es a _age a _age _age, emp.age, emp. _age utilizando el método get delete emp.age; console.log (emp.age); // salida indefinida, configurable es verdadero, puede usar el método Eliminar para eliminar el atributo EMP.AGENota: El atributo de accesorios puede desempeñar un buen papel en la protección de él. Cuando solo hay el método GET, es de solo lectura y no puede escribir; Por el contrario, cuando solo hay el conjunto, solo puede escribir pero no leer.
Lo anterior es la breve discusión de los atributos de datos de JavaScript y los atributos de accesorios que el editor le aporta. Espero que todos apoyen a Wulin.com más ~