Почему литералы объектов в javascript сохраняют ненужные ссылки DOM? - PullRequest
6 голосов
/ 05 августа 2011

Из этого документа,

Не делай этого

car = new Object();
car.make = "Honda";
car.model = "Civic";
car.transmission = "manual";
car.miles = 1000000;
car.condition = "needs work";

Сделайте это вместо

car = {
  make: "Honda",
  model: "Civic",
  transmission: "manual",
  miles: 1000000,
  condition: "needs work"
}

Поскольку

Это экономит место и лишние ссылки на DOM.

Но DOM - это просто манипулирование объектом в HTML, XHTML или XML. Вышесказанное не имеет ничего общего с DOM.

Это неправильно? Или я что-то упустил? Может ли кто-нибудь помочь мне понять, о чем ссылается DOM в этой статье?

Ответы [ 2 ]

4 голосов
/ 05 августа 2011

Я думаю, что автор хотел написать ссылки на объекты.Ссылки на DOM не имеют смысла.

1 голос
/ 06 августа 2011

Здесь на самом деле нужно обратить внимание на два момента:

1) Это уменьшает количество выполнений операторов с 6 до 1. Я не уверен, что это быстрее с практической точки зрения, но теоретически так и должно быть.По крайней мере, это делает для более чистого, более читаемого кода.

2) Если этот код выполняется в браузере, автомобильный объект ДОЛЖЕН добавляться в DOM, потому что он добавляется к объекту окна..

Этот код выдаст предупреждение "LOL":

var foo = "LOL";
alert(window.foo);
...