Objetivo: el nombre del atributo de JS se puede usar con variables
Por ejemplo: JS Object Object, al asignar atributos al objeto, se puede usar el siguiente método
La copia del código es la siguiente:
objeto var;
object.prop1 = "value1";
object.prop2 = "value2";
El siguiente método también se puede utilizar:
La copia del código es la siguiente:
object.push ({prop1: "value1"});
object.push ({prop2: "value2"});
Aquí, PROP1 se puede usar como el nombre del atributo, o se pueden agregar citas, por ejemplo:
La copia del código es la siguiente:
Object.push ({"<<span style =" Font-Family: Arial, Helvetica, sans-serif; "> prop1 </span>": "valor1"});
Los significados de las expresiones son los mismos, es decir, PROP1 solo puede reconocerse como una constante, e incluso si es una variable, es inútil, por ejemplo:
La copia del código es la siguiente:
var prop1 = "prop2";
Object.push ({prop1: "<span style =" Font-Family: Arial, Helvetica, sans-serif; "> valor1 </span>"});
¿Qué sucede si accede a Prop2 a través de un objeto como este? Por ejemplo:
La copia del código es la siguiente:
alerta (<span style = "Font-Family: Arial, Helvetica, Sans-Serif;"> Object.prop2) </span>
No hace falta preguntar, por supuesto, no está definido, pero acceder a Object.prop1 es "Valor1"
Se ha mencionado la razón. Independientemente de si se agregan citas o no, los atributos se tratan como constantes. Déjame darte otro ejemplo:
La copia del código es la siguiente:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
para (var i en arr)
{
obj.i = arr [i];
}
alerta (obj.js);
Los lectores se preguntan qué alerta imprimirá?
Por supuesto que estaba indefinido.
Por favor, adivine nuevamente, ¿qué se imprimirá si está alerta (obj.i)?
Por supuesto que es OOCSS, ¿por qué? Debido a que OBJ ahora tiene solo un atributo I, y a través de dos bucles, el frente de OBJ.i está sobrescritado por la parte posterior.
Si hay un requisito, debe agregar atributos dinámicamente, es decir, el atributo debe ser una variable. Como en el código de ejemplo anterior, Alert (obj.js) no está indefinido, sino jQuery. ¿Cómo modificarlo?
La copia del código es la siguiente:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
para (var i en arr)
{
obj [i] = arr [i];
}
alerta (obj.js);
¡Es así de simple! Trate obj OBJ como una matriz, y admite el uso de métodos similares a los subíndices para asignar atributos y valores de atributos a los objetos. Sin embargo, el objeto sigue siendo un objeto, y la vida no existe.