Показать сообщение отдельно
  #2 (permalink)  
Старый 02.05.2011, 14:01
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

1. Дело вкуса. По сути, написано одно и то же.
2. jQuery спроектирован так, что он никогда не должен выдавать ошибок. Поэтому если браузер ну вообще никак не поддерживает аякс, для того, чтобы не менять логику, сделаем так, что он «типа» его поддерживает.

То есть, мы можем сделать так:
var myObj;
if (myObj = document.getElementById("my-object")){
	myObj.style.color = "red";
};

И присваивание произойдет только если элемент найден.

Или так:
(document.getElementById("my-object") || {"style": {}}).style.color = "red"

И присваивание произойдет в любом случае, но если объекта нет, значение присвоится и сразу же уйдет в небытие сборщику мусора.

Второй способ внешне похож на говнокод, но в случае, когда отсутствие объекта с id "my-object" — явление, скорее, аварийное, чем штатное, вполне себя оправдывает.

Последний раз редактировалось subzey, 02.05.2011 в 14:02. Причина: Очепятка
Ответить с цитированием