Alvo: o nome do atributo de JS pode ser usado com variáveis
Por exemplo: objeto JS objeto, ao atribuir atributos ao objeto, o seguinte método pode ser usado
A cópia do código é a seguinte:
var o objeto;
object.prop1 = "value1";
object.prop2 = "value2";
O método a seguir também pode ser usado:
A cópia do código é a seguinte:
object.push ({prop1: "value1"});
object.push ({prop2: "value2"});
Aqui, o Prop1 pode ser usado como o nome do atributo, ou as cotações podem ser adicionadas, por exemplo:
A cópia do código é a seguinte:
object.push ({"<span style =" font-family: Arial, helvetica, sans-serif; "> prop1 </span>": "value1"});
Os significados das expressões são iguais, ou seja, o Prop1 só pode ser reconhecido como uma constante e, mesmo que seja uma variável, é inútil, por exemplo:
A cópia do código é a seguinte:
var prop1 = "prop2";
object.push ({prop1: "<span style =" font-family: Arial, helvetica, sans-serif; "> value1 </span>"});
O que acontece se você acessar o Prop2 através do objeto como este? Por exemplo:
A cópia do código é a seguinte:
alerta (<span style = "font-family: Arial, helvetica, sans-serif;"> object.prop2) </span>
Escusado será perguntar, é claro que está indefinido, mas o acesso ao objeto.Prop1 é "Value1"
O motivo foi mencionado. Independentemente de serem adicionadas aspas ou não as citadas, os atributos são tratados como constantes. Deixe -me dar outro exemplo:
A cópia do código é a seguinte:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
para (var i no arr)
{
obj.i = arr [i];
}
alerta (obj.js);
Os leitores se perguntam qual alerta imprimirá?
Claro que estava indefinido.
Por favor, adivinhe novamente, o que será impresso se alerta (obj.i)?
Claro que é OOCSS, por quê? Como o OBJ agora tem apenas um atributo I e, através de dois loops, a frente do obj.I é substituída pelas costas.
Se houver um requisito, você precisará adicionar atributos dinamicamente, ou seja, o atributo deve ser uma variável. Como no código de exemplo acima, o alerta (obj.js) não é indefinido, mas jQuery. Como modificá -lo?
A cópia do código é a seguinte:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
para (var i no arr)
{
obj [i] = arr [i];
}
alerta (obj.js);
É tão simples! Trate o Object OBJ como uma matriz e suporta o uso de métodos semelhantes aos subscritos para atribuir atributos e valores de atributos aos objetos. No entanto, o objeto ainda é um objeto, e obj.length não existe.