aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/guide/working_with_objects/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/web/javascript/guide/working_with_objects/index.html')
-rw-r--r--files/ru/web/javascript/guide/working_with_objects/index.html46
1 files changed, 23 insertions, 23 deletions
diff --git a/files/ru/web/javascript/guide/working_with_objects/index.html b/files/ru/web/javascript/guide/working_with_objects/index.html
index 88742ac122..ee94429f46 100644
--- a/files/ru/web/javascript/guide/working_with_objects/index.html
+++ b/files/ru/web/javascript/guide/working_with_objects/index.html
@@ -11,11 +11,11 @@ translation_of: Web/JavaScript/Guide/Working_with_Objects
<p>Объекты в JavaScript, как и во многих других языках программирования, похожи на объекты реальной жизни. Концепцию объектов JavaScript легче понять, проводя параллели с реально существующими в жизни объектами.</p>
-<p>В JavaScript объект — это самостоятельная единица, имеющая свойства и определенный тип. Сравним, например, с чашкой. У чашки есть цвет, форма, вес, материал, из которого она сделана, и т.д. Точно так же, объекты JavaScript имеют свойства, которые определяют их характеристики.</p>
+<p>В JavaScript объект — это самостоятельная единица, имеющая свойства и определённый тип. Сравним, например, с чашкой. У чашки есть цвет, форма, вес, материал, из которого она сделана, и т.д. Точно так же, объекты JavaScript имеют свойства, которые определяют их характеристики.</p>
<h2 id="Объекты_и_свойства">Объекты и свойства</h2>
-<p>В JavaScript объект имеет свойства, ассоциированные с ним. Свойство объекта можно понимать как переменную, закрепленную за объектом. Свойства объекта в сущности являются теми же самыми переменными JavaScript, за тем исключением, что они закреплены за объектом. Свойства объекта определяют его характеристики. Получить доступ к свойству объекта можно с помощью точечной записи:</p>
+<p>В JavaScript объект имеет свойства, ассоциированные с ним. Свойство объекта можно понимать как переменную, закреплённую за объектом. Свойства объекта в сущности являются теми же самыми переменными JavaScript, за тем исключением, что они закреплены за объектом. Свойства объекта определяют его характеристики. Получить доступ к свойству объекта можно с помощью точечной записи:</p>
<div style="margin-right: 270px;">
<pre class="brush: js">objectName.propertyName
@@ -30,7 +30,7 @@ myCar.model = "Mustang";
myCar.year = 1969;
</pre>
-<p>Неопределенные свойства объекта являются {{jsxref("undefined")}} (а не {{jsxref("null")}}).</p>
+<p>Неопределённые свойства объекта являются {{jsxref("undefined")}} (а не {{jsxref("null")}}).</p>
<pre class="brush: js line-numbers language-js"><code class="language-js">myCar<span class="punctuation token">.</span>color<span class="punctuation token">;</span> <span class="comment token">// undefined</span></code></pre>
@@ -58,7 +58,7 @@ myObj[""] = "Even an empty string";
console.log(myObj);
</pre>
-<p>Обратите внимание, что все ключи с квадратными скобками преобразуются в тип String, поскольку объекты в JavaScript могут иметь в качестве ключа только тип String. Например, в приведенном выше коде, когда ключ <code>obj</code> добавляется в <code>myObj</code>, JavaScript вызывает метод <code>obj.toString ()</code> и использует эту результирующую строку в качестве нового ключа.</p>
+<p>Обратите внимание, что все ключи с квадратными скобками преобразуются в тип String, поскольку объекты в JavaScript могут иметь в качестве ключа только тип String. Например, в приведённом выше коде, когда ключ <code>obj</code> добавляется в <code>myObj</code>, JavaScript вызывает метод <code>obj.toString ()</code> и использует эту результирующую строку в качестве нового ключа.</p>
<p>Вы также можете получить доступ к свойствам, используя значение строки, которое хранится в переменной:</p>
@@ -71,7 +71,7 @@ myCar[propertyName] = "Mustang";
</pre>
</div>
-<p>Вы можете пользоваться квадратными скобками в конструкции <a class="internal" href="/ru/docs/JavaScript/Guide/Statements#for...in_Statement" title="ru/docs/JavaScript/Guide/Statements#for...in Statement">for...in</a> чтобы выполнить итерацию всех свойств объекта, для которых она разрешена. Чтобы показать как это работает, следующая функция показывает все свойства объекта, когда вы передаете в нее сам объект и его имя как аргументы функции:</p>
+<p>Вы можете пользоваться квадратными скобками в конструкции <a class="internal" href="/ru/docs/JavaScript/Guide/Statements#for...in_Statement" title="ru/docs/JavaScript/Guide/Statements#for...in Statement">for...in</a> чтобы выполнить итерацию всех свойств объекта, для которых она разрешена. Чтобы показать как это работает, следующая функция показывает все свойства объекта, когда вы передаёте в неё сам объект и его имя как аргументы функции:</p>
<pre class="brush: js">function showProps(obj, objName) {
var result = "";
@@ -137,12 +137,12 @@ myCar.year = 1969</pre>
<p>Если объект создан при помощи инициализатора объектов на высшем уровне скрипта, то JavaScript интерпретирует объект каждый раз, когда анализирует выражение, содержащее объект, записанный как литерал. Плюс, если пользоваться функцией инициализатором, то он будет создаваться каждый раз, когда функция вызывается.</p>
-<p>Следующая инструкция создает объект и назначает его переменной <code>x</code>, когда выражение <code>cond</code> истинно.</p>
+<p>Следующая инструкция создаёт объект и назначает его переменной <code>x</code>, когда выражение <code>cond</code> истинно.</p>
<pre class="brush: js">if (cond) var x = {hi: "there"};
</pre>
-<p>Следующий пример создает объект <code>myHonda</code> с тремя свойствами. Заметьте, что свойство <code>engine</code> <span style="line-height: 1.5;">—</span> это также объект со своими собственными свойствами.</p>
+<p>Следующий пример создаёт объект <code>myHonda</code> с тремя свойствами. Заметьте, что свойство <code>engine</code> <span style="line-height: 1.5;">—</span> это также объект со своими собственными свойствами.</p>
<pre class="brush: js">var myHonda = {
color: "red",
@@ -183,7 +183,7 @@ myCar.year = 1969</pre>
<pre class="brush: js">var mycar = new Car("Eagle", "Talon TSi", 1993);
</pre>
-<p>Эта инструкция создает объект типа Car со ссылкой <code>mycar</code> и присваивает определенные значения его свойствам. Значением <code>mycar.make </code>станет строка "Eagle", <code>mycar.year</code> <span style="line-height: 1.5;">—</span> это целое число 1993, и так далее.</p>
+<p>Эта инструкция создаёт объект типа Car со ссылкой <code>mycar</code> и присваивает определённые значения его свойствам. Значением <code>mycar.make </code>станет строка "Eagle", <code>mycar.year</code> <span style="line-height: 1.5;">—</span> это целое число 1993, и так далее.</p>
<p>Вы можете создать столько объектов <code>car,</code> сколько нужно, просто вызывая  <code>new</code>. Например:</p>
@@ -246,11 +246,11 @@ var Animal = {
}
};
-// Создаем объект Animal
+// Создаём объект Animal
var animal1 = Object.create(Animal);
animal1.displayType(); // Выведет:Invertebrates
-// Создаем объект Animal и присваиваем ему type = Fishes
+// Создаём объект Animal и присваиваем ему type = Fishes
var fish = Object.create(Animal);
fish.type = 'Fishes';
fish.displayType(); // Выведет:Fishes</pre>
@@ -263,13 +263,13 @@ fish.displayType(); // Выведет:Fishes</pre>
<p>В JavaScript 1.0 вы можете сослаться на свойства объекта либо по его имени, либо по его порядковому индексу. В JavaScript 1.1 и позже, если вы изначально определили свойство по имени, вы всегда должны ссылаться на него по его имени, и если вы изначально определили свойство по индексу, то должны ссылаться на него по его индексу.</p>
-<p>Это ограничение налагается когда вы создаете объект и его свойства с помощью функции конструктора (как мы это делали ранее с типом <em>Car </em>) и когда вы определяете индивидуальные свойства явно (например, <code>myCar.color = "red"</code>). Если вы изначально определили свойство объекта через индекс, например <code>myCar[5] = "25 mpg"</code>, то впоследствии сослаться на это свойство можно только так <code>myCar[5]</code>.</p>
+<p>Это ограничение налагается когда вы создаёте объект и его свойства с помощью функции конструктора (как мы это делали ранее с типом <em>Car </em>) и когда вы определяете индивидуальные свойства явно (например, <code>myCar.color = "red"</code>). Если вы изначально определили свойство объекта через индекс, например <code>myCar[5] = "25 mpg"</code>, то впоследствии сослаться на это свойство можно только так <code>myCar[5]</code>.</p>
<p>Исключение из правил <span style="line-height: 1.5;">—</span> объекты, отображаемые из HTML, например массив<code> forms</code>. Вы всегда можете сослаться на объекты в этих массивах или используя их индекс (который основывается на порядке появления в HTML документе), или по их именам (если таковые были определены). Например, если второй html-тег <code>&lt;FORM&gt;</code> в документе имеет значение атрибута <code>NAME</code> равное "myForm", вы можете сослаться на эту форму вот так: <code>document.forms[1]</code> или <code>document.forms["myForm"]</code> или <code>document.myForm</code>.</p>
<h2 id="Определение_свойств_для_типа_объекта">Определение свойств для типа объекта</h2>
-<p>Вы можете добавить свойство к ранее определенному типу объекта воспользовавшись специальным свойством <code>prototype</code>. Через <code>prototype</code> создается свойство, единое для всех объектов данного типа, а не одного экземпляра этого типа объекта. Следующий код демонстрирует это, добавляя свойство <code>color</code> ко всем объектам типа <code>car</code>, а затем присваивая значение свойству <code>color</code> объекта<code> car1</code>.</p>
+<p>Вы можете добавить свойство к ранее определённому типу объекта воспользовавшись специальным свойством <code>prototype</code>. Через <code>prototype</code> создаётся свойство, единое для всех объектов данного типа, а не одного экземпляра этого типа объекта. Следующий код демонстрирует это, добавляя свойство <code>color</code> ко всем объектам типа <code>car</code>, а затем присваивая значение свойству <code>color</code> объекта<code> car1</code>.</p>
<pre class="brush: js">Car.prototype.color = null;
car1.color = "black";
@@ -297,7 +297,7 @@ var myObj = {
<pre class="brush: js">object.methodname(params);
</pre>
-<p>Вы можете определять методы для типа объекта, включая определение метода в функцию конструктора объекта. Например, вы можете определить функцию, которая форматирует и отображает свойства до этого определенных объектов <code>car</code>. Например,</p>
+<p>Вы можете определять методы для типа объекта, включая определение метода в функцию конструктора объекта. Например, вы можете определить функцию, которая форматирует и отображает свойства до этого определённых объектов <code>car</code>. Например,</p>
<pre class="brush: js">function displayCar() {
var result = "A Beautiful " + this.year + " " + this.make
@@ -359,9 +359,9 @@ car2.displayCar();
<h2 id="Определение_геттеров_и_сеттеров">Определение геттеров и сеттеров</h2>
-<p><em><a href="/ru/docs/Web/JavaScript/Reference/Functions/get">Геттер </a>(от англ. get - получить) </em><span style="line-height: 1.5;">—</span><em> </em>это метод, который получает значение определенного свойства. <em><a href="/ru/docs/Web/JavaScript/Reference/Functions/set">Сеттер </a>(от англ. set </em><span style="line-height: 1.5;">—</span><em> присвоить)</em> <span style="line-height: 1.5;">—</span> это метод, который присваивает значение определенному свойству объекта. Вы можете определить геттеры и сеттеры для любых из встроенных или определенных вами объектов, которые поддерживают добавление новых свойств. Синтаксис определения геттеров и сеттеров использует литеральный синтаксис объектов.</p>
+<p><em><a href="/ru/docs/Web/JavaScript/Reference/Functions/get">Геттер </a>(от англ. get - получить) </em><span style="line-height: 1.5;">—</span><em> </em>это метод, который получает значение определённого свойства. <em><a href="/ru/docs/Web/JavaScript/Reference/Functions/set">Сеттер </a>(от англ. set </em><span style="line-height: 1.5;">—</span><em> присвоить)</em> <span style="line-height: 1.5;">—</span> это метод, который присваивает значение определённому свойству объекта. Вы можете определить геттеры и сеттеры для любых из встроенных или определённых вами объектов, которые поддерживают добавление новых свойств. Синтаксис определения геттеров и сеттеров использует литеральный синтаксис объектов.</p>
-<p>Ниже проиллюстрировано, как могут работать геттеры и сеттеры в объекте определенном пользователем:</p>
+<p>Ниже проиллюстрировано, как могут работать геттеры и сеттеры в объекте определённом пользователем:</p>
<pre class="brush: js"><code>var o = {
a: 7,
@@ -386,7 +386,7 @@ console.log(o.a); // 25</code></pre>
<li><code>o.c</code> — сеттер, который присваивает значение <code>o.a</code> половине значения которое передано в <code>o.c</code></li>
</ul>
-<p>Следует особо отметить, что имена функций, указанные в литеральной форме "[gs]et <em>propertyName</em>() { }" не будут в действительности являться именами геттера и сеттера. Чтобы задать в качестве геттера и сеттера функции с явно определенными именами, используйте метод <code><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty" title="en-US/docs/Core JavaScript 1.5 Reference/Global
+<p>Следует особо отметить, что имена функций, указанные в литеральной форме "[gs]et <em>propertyName</em>() { }" не будут в действительности являться именами геттера и сеттера. Чтобы задать в качестве геттера и сеттера функции с явно определёнными именами, используйте метод <code><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty" title="en-US/docs/Core JavaScript 1.5 Reference/Global
Objects/Object/defineProperty">Object.defineProperty</a></code> (или его устаревший аналог <code><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineGetter" title="en-US/docs/Core JavaScript 1.5 Reference/Global
Objects/Object/defineGetter">Object.prototype.__defineGetter__</a></code>).</p>
@@ -450,7 +450,7 @@ myobj.b = 12;
delete myobj.a;
</pre>
-<p>Вы также можете воспользоваться <code>delete</code> чтобы удалить глобальную переменную, если ключевое слово <code>var</code> не было использовано при ее объявлении:</p>
+<p>Вы также можете воспользоваться <code>delete</code> чтобы удалить глобальную переменную, если ключевое слово <code>var</code> не было использовано при её объявлении:</p>
<pre class="brush: js">g = 17;
delete g;
@@ -460,25 +460,25 @@ delete g;
<h2 id="Сравнение_объектов">Сравнение объектов</h2>
-<p>В JavaScript объекты имеют ссылочный тип. Два отдельных объекта никогда не будут равными, даже если они имеют равный набор свойств. Только сравнение двух ссылок на один и тот же объект вернет true.</p>
+<p>В JavaScript объекты имеют ссылочный тип. Два отдельных объекта никогда не будут равными, даже если они имеют равный набор свойств. Только сравнение двух ссылок на один и тот же объект вернёт true.</p>
<pre class="brush: js"><code>// Две переменных ссылаются на два объекта с одинаковыми свойствами
var fruit = {name: 'apple'};
var fruitbear = {name: 'apple'};
-fruit == fruitbear; // вернет false
-fruit === fruitbear; // вернет false</code></pre>
+fruit == fruitbear; // вернёт false
+fruit === fruitbear; // вернёт false</code></pre>
<pre class="brush: js"><code>// Две переменные ссылаются на один общий объект
var fruit = {name: 'apple'};
var fruitbear = fruit; // присвоим переменной fruitbear ссылку на объект fruit
// теперь fruitbear и fruit ссылаются на один и тот же объект
-fruit == fruitbear; // вернет true
-fruit === fruitbear; // вернет true</code></pre>
+fruit == fruitbear; // вернёт true
+fruit === fruitbear; // вернёт true</code></pre>
<pre class="brush: js"><code>fruit.name = 'grape';
-console.log(fruitbear); // вернет { name: "grape" } вместо { name: "apple" }</code></pre>
+console.log(fruitbear); // вернёт { name: "grape" } вместо { name: "apple" }</code></pre>
<p>Подробнее смотрите <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators">Операторы сравнения</a>.</p>