/
567.txt
55 lines (43 loc) · 3.14 KB
/
567.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
[2] [[JavaScript]] の[[オブジェクト]]は[DFN[[RUBYB[内部特性]@en[inetrnal property]]]]・[DFN[[RUBYB[内部メソッド]@en[internal method]]]]を持つことがあります。
[[内部特性]]・[[内部メソッド]]は仕様の定義のためのもので、言語仕様の一部分ではないとされています
[SRC@en[[[ES3]] 8.6.2]]。
[3] [[内部特性]]・[[内部メソッド]]は [CODE(JS)@en['''[''''''['''[VAR[...]]''']'''''']''']]
のように括弧で括って表記されます。仕様上は [[JavaScript]]
[[プログラム]]内からこの表記で[[内部特性]]・[[内部属性]]にアクセスできるわけではありません。
実際にはいくつかの[[内部特性]]にアクセスする方法も用意されていることがあります。
* 仕様書
- [1] [CITE[ECMAScript Language Specification (HTML version)]]
-- <http://bclary.com/2004/11/07/#a-8.6.1>
-- '''<http://bclary.com/2004/11/07/#a-8.6.2>'''
* [CODE(JS)@en[{Internal}]] 特性属性
[4] [DFN[[CODE(JS)@en[Internal]]] [[特性属性]] [SRC@en[[[ES3]] 8.6.1]]
は[[内部特性]]・[[内部メソッド]]のための[[特性属性]]と思われますが、
実際には [[ES3]] 仕様書中のどこでも使われていません。
* 内部特性・内部メソッド一覧
[5] 括弧内は [[JavaScript]] [[プログラム]]から当該[[内部特性]]にアクセスする方法を表します。
- [CODE(JS)@en[[['''[''''''['''Call''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''CanPut''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''Class''']'''''']''']]]] ([CODE(JS)@en[[[Object]].[[prototype]].[[toString]]]]')
- [CODE(JS)@en[[['''[''''''['''Construct''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''DefaultValue''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''Delete''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''Get''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''HasInstance''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''HasProperty''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''Match''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''Prototype''']'''''']''']]]] ([CODE(JS)@en[[[__proto__]]]])
- [CODE(JS)@en[[['''[''''''['''Put''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''Scope''']'''''']''']]]]
- [CODE(JS)@en[[['''[''''''['''Value''']'''''']''']]]] ([CODE(JS)@en[[[Boolean]]]], [CODE(JS)@en[[[Number]]]], [CODE(JS)@en[[[String]]]])
[6] [CITE@en[Allow other specifications to override object internal methods in spe… · heycam/webidl@e2ae8d7]]
([TIME[2016-01-19 10:41:50 +09:00]] 版)
<https://github.com/heycam/webidl/commit/e2ae8d710a36a41582aa92e10759e0759db41a89>
[7] [CITE@en[29377 – Overwriting JavaScript internal methods]]
([TIME[2016-01-19 10:42:22 +09:00]] 版)
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=29377>
[8] [CITE@en[Consistent use of internal slots/methods]]
([[TimothyGu]]著, [TIME[2017-12-04 05:20:13 +09:00]])
<https://github.com/heycam/webidl/commit/9842dd4dd9b9d26014ca053301ae3e66184d8bfe>
[9] [CITE@en[Add space to class string of iterator objects by TimothyGu · Pull Request #483 · heycam/webidl]]
([TIME[2017-12-08 16:26:59 +09:00]])
<https://github.com/heycam/webidl/pull/483>