aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/new_in_javascript/1.8.5/index.html
blob: ab6a9d4ce3c1eb04690ab544b4a605ca0b3ca706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
---
title: Новое в JavaScript 1.8.5
slug: Web/JavaScript/New_in_JavaScript/1.8.5
translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.5
---
<div>{{jsSidebar("New_in_JS")}}</div>

<p>Далее приведён список изменений в JavaScript 1.8.5. Эта версия была включена в <a href="/en-US/Firefox/Releases/4">Firefox 4</a>.</p>

<h2 id="Что_нового_в_JavaScript_1.8.5">Что нового в JavaScript 1.8.5</h2>

<h3 id="Новые_функции">Новые функции</h3>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Функция</th>
   <th scope="col">Описание</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create" title="JavaScript/Reference/Global Objects/Object/Create">Object.create()</a></code></td>
   <td>Создаёт новый обЪект с указанным прототипом и свойствами. {{bug("492840")}}</td>
  </tr>
  <tr>
   <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty" title="JavaScript/Reference/Global Objects/Object/DefineProperty">Object.defineProperty()</a></code></td>
   <td>Добавляет свойство с переданным дескриптором к объекту.</td>
  </tr>
  <tr>
   <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties" title="JavaScript/Reference/Global Objects/Object/DefineProperties">Object.defineProperties()</a></code></td>
   <td>Добавляет свойства с переданными дескрипторами к объекту.</td>
  </tr>
  <tr>
   <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" title="JavaScript/Reference/Global Objects/Object/GetOwnPropertyDescriptor">Object.getOwnPropertyDescriptor()</a></code></td>
   <td>Возвращает дескриптор свойства переданного объекта. {{bug("505587")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys" title="JavaScript/Reference/Global Objects/Object/keys"><code>Object.keys()</code></a></td>
   <td>Возвращает массив всех перечисляемых свойств объекта. {{bug("307791")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="JavaScript/Reference/Global Objects/Object/getOwnPropertyNames"><code>Object.getOwnPropertyNames()</code></a></td>
   <td>Возвращает массив всех перечисляемых и не перечисляемых свойств объекта. {{bug("518663")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions" title="JavaScript/Reference/Global Objects/Object/preventExtensions"><code>Object.preventExtensions()</code></a></td>
   <td>Предотвращает любые расширения объекта. {{bug("492849")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible" title="JavaScript/Reference/Global Objects/Object/isExtensible"><code>Object.isExtensible()</code></a></td>
   <td>Определяет, разрешено ли расширение объекта. {{bug("492849")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal" title="JavaScript/Reference/Global Objects/Object/seal"><code>Object.seal()</code></a></td>
   <td>Запрещает остальному коду удаление свойств объекта {{bug("492845")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed" title="JavaScript/Reference/Global Objects/Object/isSealed"><code>Object.isSealed()</code></a></td>
   <td>Определяет, запрещено ли удаление свойств объекта. {{bug("492845")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze" title="JavaScript/Reference/Global Objects/Object/freezed"><code>Object.freeze()</code></a></td>
   <td>Замораживает объект: остальной код не может удалять или изменять значения его свойств. {{bug("492844")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen" title="JavaScript/Reference/Global Objects/Object/isFrozen"><code>Object.isFrozen()</code></a></td>
   <td>Определяет, был ли объект заморожен. {{bug("492844")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray" title="JavaScript/Reference/Global Objects/Array/isArray"><code>Array.isArray()</code></a></td>
   <td>Проверяет, является ли переменная массивом. {{bug("510537")}}</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON" title="JavaScript/Reference/Global Objects/Date/toJSON"><code>Date.prototype.toJSON()</code></a></td>
   <td>Возвращает строку в формате JSON для объекта <code>Date</code>.</td>
  </tr>
  <tr>
   <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind" title="JavaScript/Reference/Global_Objects/Function/bind"><code>Function.prototype.bind()</code></a></td>
   <td>Метод <code>bind()</code> создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения <code>this</code> предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.{{bug("429507")}}</td>
  </tr>
 </tbody>
</table>

<h3 id="Новые_возможности_ECMAScript5">Новые возможности ECMAScript5</h3>

<ul>
 <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/get" title="JavaScript/Reference/Operators/Special Operators/get Operator">get</a></code> и <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/set" title="JavaScript/Reference/Operators/Special Operators/set Operator">set</a></code> операторы теперь позволяют идентификатору быть строкой или числом. {{bug("520696")}}</li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply" title="JavaScript/Reference/Global Objects/Function/apply"><code>Function.apply()</code></a> может принимать в качестве списка аргументов не только настоящие массивы, но и подобные массивам объекты.</li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode" title="JavaScript/Strict mode">strict mode support</a></li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString" title="JavaScript/Reference/Global Objects/Array/toString"><code>Array.toString()</code></a> теперь работает не только на массивах, возвращая либо результат вызова <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join" title="JavaScript/Reference/Global Objects/Array/join"><code>join()</code></a> , если он доступен, либо вызова  <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString" title="JavaScript/Reference/Global Objects/Object/toString">toString()</a>.</code></li>
</ul>

<h3 id="Другая_работа_по_стандартизации">Другая работа по стандартизации</h3>

<p>Различные нестандартизованные синтаксические конструкции задания геттеров/сеттеров были удалены; Определенный в  ECMAScript 5 синтаксис изменениям не подвергся. Все они были несколько "эзотерическими" и довольно редко использовались на практике; если эти изменения Вас затронули, прочтите <a href="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/">эту статью</a>.</p>

<h3 id="Новые_объекты">Новые объекты</h3>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Объект</th>
   <th scope="col">Описание</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td><code><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy">Proxy</a></code></td>
   <td>Предлагает поддержку при создании <code>Object</code> и <code>Function</code> прокси, что позволяет использовать метапрограммирование на JavaScript.</td>
  </tr>
 </tbody>
</table>

<h2 id="Функциональность_изменённая_в_JavaScript_1.8.5">Функциональность, изменённая в JavaScript 1.8.5</h2>

<ul>
 <li>ISO 8601 поддерживается в <code>Date:</code> метод <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse">parse()</a> объекта <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date">Date</a>  теперь допускает использование формата  ISO 8601 для строкового представления даты.</li>
 <li>Глобальные объекты стали доступны "только для чтения": глобальные объекты <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN" title="JavaScript/Reference/Global Objects/NaN"><code>NaN</code></a>, <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity" title="JavaScript/Reference/Global Objects/Infinity"><code>Infinity</code></a>, и <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined" title="JavaScript/Reference/Global Objects/undefined"><code>undefined</code></a> теперь доступны только для чтения по спецификации ECMAScript 5.</li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Parent" title="JavaScript/Reference/Global Objects/Object/Parent"><code>obj.__parent__</code></a> и <code>obj.__count__</code> устарели. Больше информации, почему это произошло: <a class="external" href="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/" title="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/">SpiderMonkey change du jour: the special __parent__ property has been removed</a> {{bug("551529")}} &amp; {{bug("552560")}}.</li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse" title="Using native JSON"><code>JSON.parse()</code></a> больше не допускает использование конечных запятых.</li>
</ul>