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
|
---
title: Window.self
slug: Web/API/Window/self
translation_of: Web/API/Window/self
---
<p>{{ APIRef() }}</p>
<p>Свойство <code><strong>Window.self</strong></code> доступно только для чтения и возвращает объект window в виде объекта {{domxref("WindowProxy")}}. Для доступа к данному свойству возможно использовать точечную нотацию и объект <code>window</code> (<code>window.self</code>) или переменную <code>self</code>. Преимущество доступа через переменную <code>self</code> заключается в том, что её можно использовать в окружениях, в которых нет window, например {{domxref("Worker", "Web Workers")}}. Использование <code>self</code> даёт возможность обращаться к глобальному объекту не только в окружениях где есть window (в таком случае <code>self</code> эквивалентна <code>window.self</code>), но также в воркерах (в случае воркера <code>self</code> эквивалентна {{domxref("WorkerGlobalScope.self")}}).</p>
<h2 id="Notes" name="Notes">Пример</h2>
<p>В следующем примере <code>window.self</code> точно также может быть заменено на <code>window</code>.</p>
<pre class="brush:js">if (window.parent.frames[0] != window.self) {
// этот window не является первым frame в списке
}
</pre>
<p>Кроме того, когда код выполняется в активном документе браузера, объект <code>window</code> является ссылкой на текущий глобальный объект и таким образом:</p>
<pre class="brush:js">var w1 = window;
var w2 = self;
var w3 = window.window;
var w4 = window.self;
// Значения переменных w1, w2, w3, w4 строго равны между собой
// Но только переменная w2 будет работать в workers
</pre>
<h2 id="Specification" name="Specification">Спецификации</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('HTML WHATWG', '#dom-self', 'Window.self')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td>No difference from the latest snapshot {{SpecName("HTML5.1")}}</td>
</tr>
<tr>
<td>{{SpecName('HTML5.1', 'browsers.html#dom-self', 'Window.self')}}</td>
<td>{{Spec2('HTML5.1')}}</td>
<td>No difference from the {{SpecName("HTML5 W3C")}}</td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'browsers.html#dom-self', 'Window.self')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
<td>First snapshot containing the definition of <code>Window.self</code>.</td>
</tr>
</tbody>
</table>
<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
<p>{{Compat("api.Window.self")}}</p>
<p> </p>
<h2 class="noinclude" id="Смотрите_также">Смотрите также</h2>
<ul>
<li>Its <code>Worker</code> equivalent, {{domxref("WorkerGlobalScope.self")}}.</li>
</ul>
|