/
5.txt
70 lines (49 loc) · 2.74 KB
/
5.txt
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
[10] [[大域オブジェクト]]の [DFN[[CODE[self]]]] は、[[大域オブジェクト]]を表します。
[[文書環境]]では、同じく [DFN[[CODE[window]]]] も[[大域オブジェクト]]である
[CODE(DOMi)@en[Window]] を表します。
;; [11] [CODE[self]] を使うと、[[文書環境]]でも[[ワーカー環境]]でも[[大域オブジェクト]]にアクセスできます。
* 仕様書
[REFS[
- [8] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-03-31 07:16:44 +09:00]] 版) <https://html.spec.whatwg.org/#dom-window>
]REFS]
* 意味
[15] これら[[大域オブジェクト]]を返す[[IDL属性]]を介して[[大域オブジェクト]]を得ることで、
[[大域オブジェクト]]の様々なメンバーにアクセスできます。
[14] [CODE(JS)@en[this]] が設定される場面以外では [CODE(JS)@en[this]]
が[[大域オブジェクト]]を表しますし、それ以外でも名前が衝突しなければ[[大域オブジェクト]]のメンバー名によって[[大域オブジェクト]]メンバーにアクセスできますが、
[[大域オブジェクト]]に自身を返す[[IDL属性]]があることで、
より容易に確実に[[大域オブジェクト]]のメンバーにアクセスすることができるようになっています。
* 取得器
[7] [CODE(DOMi)@en[Window]] [[オブジェクト]]の
[CODE(DOMa)@en[window][window.window]] [[IDL属性]]、
[CODE(DOMa)@en[self][window.self]] [[IDL属性]]、
[CODE(DOMa)@en[frames][window.frames]] [[IDL属性]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>8]]。
[FIG(steps)[
= [9] [[文脈オブジェクト]]の[F[閲覧文脈]]の
[F[[CODE(DOMi)@en[WindowProxy]]]] を返します。
]FIG]
* 設定器
[12] [CODE(DOMi)@en[window]] は、[CODE(IDL xattr)@en[Unforgeable]] です [SRC[>>8]]。
[13] [CODE(DOMi)@en[self]], [CODE(DOMi)@en[frames]] は、
[CODE(IDL xattr)@en[Replaceable]] です [SRC[>>8]]。
* 歴史
** 誕生
[3] [[JavaScript 1.0]] で
[CODE(JS)@en[window.window]],
[CODE(JS)@en[window.self]],
[CODE(JS)@en[window.frames]] が実装されました。
** 標準化
[4] [[Web Applications 1.0]] でようやく標準化されました。
[6] [CITE@en-US[Window Object 1.0]]
( ([TIME[2006-04-08 02:19:28 +09:00]] 版))
<http://www.w3.org/TR/Window/#window>
[5] [CITE@en[(X)HTML5 Tracking]]
([TIME[2009-08-30 09:29:48 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=3693&to=3694>
[1] [CITE[Accessible global object 'self']]
([TIME[2015-08-04 07:08:14 +09:00]] 版)
<http://littledan.github.io/global.html>
[2] [CITE[IRC logs: freenode / #whatwg / 20150803]]
([TIME[2015-08-04 13:43:08 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20150803#l-659>