aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/global_objects/map/@@species/index.html
blob: cd651134533a89e386f315bc1361abb3f8f40cec (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
---
title: 'get Map[@@species]'
slug: Web/JavaScript/Reference/Global_Objects/Map/@@species
translation_of: Web/JavaScript/Reference/Global_Objects/Map/@@species
---
<div>{{JSRef}}</div>

<p>Акцессор свойства <code><strong>Map[@@species]</strong></code> возвращает <code>Map</code> конструктор.</p>

<h2 id="Синтаксис">Синтаксис</h2>

<pre class="syntaxbox">Map[Symbol.species]
</pre>

<h2 id="Описание">Описание</h2>

<p>Акцессор свойства species, возвращает конструктор по умолчанию для <code>Map</code> объектов. Конструкторы подклассов могут переопределить его, чтобы изменить поведение конструктора.</p>

<h2 id="Примеры">Примеры</h2>

<p>Свойство species возвращает конструктор по умолчанию, который является конструктором <code>Map</code> для <code>Map</code> объектов:</p>

<pre class="brush: js">Map[Symbol.species]; // функция Map()</pre>

<p>В производном объекте коллекции (например, ваша пользовательская карта <code>MyMap</code>), <code>MyMap</code> species является <code>MyMap</code> конструктором. Однако, вы можете захотеть переопределить это, что бы вернуть родительский <code>Map</code> в методах вашего производного класса:</p>

<pre class="brush: js">class MyMap extends Map {
  // Перезаписываем MyMap species на родительский Map конструктор
  static get [Symbol.species]() { return Map; }
}</pre>

<h2 id="Спецификации">Спецификации</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Спецификация</th>
   <th scope="col">Статус</th>
   <th scope="col">Комментарий</th>
  </tr>
  <tr>
   <td>{{SpecName('ES2015', '#sec-get-map-@@species', 'get Map [ @@species ]')}}</td>
   <td>{{Spec2('ES2015')}}</td>
   <td>Исходное определение.</td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-get-map-@@species', 'get Map [ @@species ]')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Функция</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Базовая поддержка</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatGeckoDesktop("41")}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Функция</th>
   <th>Android</th>
   <th>Chrome for Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Базовая поддержка</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatGeckoMobile("41")}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
  </tr>
 </tbody>
</table>
</div>

<h2 id="Смотри_так_же">Смотри так же</h2>

<ul>
 <li>{{jsxref("Map")}}</li>
 <li>{{jsxref("Symbol.species")}}</li>
</ul>