русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей

Введите адрес электронной почты:

Все в JavaScript представляет собой объект. Самый простой способ создать объект — использовать символ объекта:

 var x = {};
 var y = {
   name: "Pete",
   age: 15
 };

Тип данных объекта — «object»:

 typeof {} // "object"

Точка

Вы можете указывать и читать свойства объекта используя точку:

 y.name // "Pete"
 y.age // 15
 x.name = y.name + " Pan" // "Pete Pan"
 x.age = y.age + 1 // 16

Массив

Также можно указывать и читать свойства объекта используя массив, что позволяет Вам динамически выбирать свойство:

 var operations = {
   increase: "++",
   decrease: "--"
 }
 var operation = "increase";
 operations[operation] // "++";
 operations["multiply"] = "*"; // "*"

Итерация

Производить операции над объектами проще всего в цикле for:

var obj = {  
  name: "Pete",
  age: 15
};
for(key in obj) {
 alert("key is "+[key]+", value is "+obj[key]);
}

Следует отметить, что цикл может быть испорчен путем расширения Object.prototype (обратитесь к статье Object.prototype), поэтому будьте внимательны при использовании других библиотек.

jQuery предоставляет функцию each для операций над свойствами объектов а также над элементами массивов:

 jQuery.each(obj, function(key, value) {
   console.log("key", key, "value", value);
 });

Недостатком является то, что функция вызывается в контексте каждого значения, поэтому Вы теряете контекст Вашего собственного объекта. Более подробно об этом ниже в разделе «Функции».

Логическое значение по умолчанию

Независимо от того, есть-ли у объекта свойства или нет, он никогда по умолчанию не является false:

 !{} // false

Прототип

Все объекты имеют свойство протоипа. Во всех случаях, когда интерпретатор ищет свойство, он также проверяет прототип. jQuery повсеместно использует прототипы для добавления методов в экземпляры объектов.

var form = $("#myform");
 form.clearForm; // undefined
 form.fn.clearForm = function() {
   return this.find(":input").each(function() {
     this.value = "";
   }).end();
 };
form.clearForm() // работает для всех экземпляров объектов jQuery, так
как новый метод был добавлен в прототип

(В этом примере требуется уточнение: как можно изменить прототип, когда слово "prototype" нигде не фигурирует? Подразумевается, что form.fn просто псевдоним для form.prototype, но если это так, то это должно быть объяснено .: -?)

In javascript: окончательное издание пятой серии, сказано: не добавлять атрибут к Object.prototype

Была ли эта информация полезной?
   

Комментарии