Цель: Имя атрибута JS может использоваться с переменными
Например: объект объекта JS при назначении атрибутов объекту можно использовать следующий метод
Кода -копия выглядит следующим образом:
var объект;
Object.prop1 = "value1";
Object.prop2 = "value2";
Также можно использовать следующий метод:
Кода -копия выглядит следующим образом:
object.push ({prop1: "value1"});
object.push ({prop2: "value2"});
Здесь ProP1 может использоваться в качестве имени атрибута, или цитаты могут быть добавлены, например:
Кода -копия выглядит следующим образом:
object.push ({"<span style =" font-family: arial, helvetica, sans-serif; "> prop1 </span>": "value1"});
Значения выражений одинаковы, то есть ProP1 может быть распознан только как постоянная, и даже если это переменная, это бесполезно, например:
Кода -копия выглядит следующим образом:
var prop1 = "prop2";
object.push ({prop1: "<span style =" font-family: arial, helvetica, sans-serif; "> value1 </span>"});
Что произойдет, если вы получите доступ к Prop2 через такие объекты? Например:
Кода -копия выглядит следующим образом:
Alert (<span style = "font-family: arial, helvetica, sans-serif;"> object.prop2) </span>
Излишне спрашивать, конечно, это не определен, но доступ к объекту.
Причина была упомянута. Независимо от того, добавляются ли кавычки, атрибуты рассматриваются как константы. Позвольте мне привести еще один пример:
Кода -копия выглядит следующим образом:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
для (var i in arr)
{
obj.i = arr [i];
}
предупреждение (obj.js);
Читатели задаются вопросом, какое предупреждение будет печатать?
Конечно, это было неопределенно.
Пожалуйста, угадайте еще раз, что будет напечатано, если настороже (OBJ.I)?
Конечно, это OOCSS, почему? Поскольку у OBJ теперь есть только один атрибут I, и через две петли, фронт OBJ.I перезаписывается спиной.
Если есть требование, вам необходимо динамически добавить атрибуты, то есть атрибут должен быть переменной. Как и в приведенном выше примере кода, оповещение (obj.js) не является неопределенным, а JQuery. Как его изменить?
Кода -копия выглядит следующим образом:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
для (var i in arr)
{
obj [i] = arr [i];
}
предупреждение (obj.js);
Это так просто! Обратитесь объектом obj как массив, и он поддерживает использование методов, аналогичных подпискам, чтобы назначить атрибуты и атрибуты значениям объектам. Однако объект все еще является объектом, и obj.length не существует.