forked from iliakan/es5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
x15.html
executable file
·65 lines (58 loc) · 11 KB
/
x15.html
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
<!DOCTYPE html>
<html class="split chapter"><head>
<meta charset="utf-8"><title>15 Стандартные встроенные объекты ECMAScript | ES5 на русском</title><link rel="stylesheet" href="style.css"><link href="x14.html" title="14 Программа " rel="prev">
<link href="index.html" title="Содержание" rel="index">
<link href="x15.1.html" title="15.1 Глобальный объект " rel="next">
</head><body><div class="head">
<h2 id="top">Спецификация ECMAScript 5.1 с аннотациями <span id="timestamp"></span></h2>
<!--left..-->
<div id="slogan">
<div id="share-toggler">Поделиться</div>
<div class="share">
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://es5.javascript.ru/" data-lang="ru" data-size="large" data-count="horizontal">Твитнуть</a>
<div id="fb-root"></div>
<div style="margin-bottom:5px" class="fb-like" data-href="http://es5.javascript.ru" data-send="false" data-action="recommend" data-layout="button_count" data-width="300" data-show-faces="false" data-font="arial"></div>
<div class="vk-share-wrapper">
<script src="http://vkontakte.ru/js/api/share.js?9" charset="windows-1251"></script>
<script src="misc.js"></script>
</div>
<div style="margin-top:6px">
<g:plusone annotation="inline" href="http://es5.javascript.ru/" width="120" size="standard" style="vertical-align:middle"></g:plusone>
</div>
</div>
</div>
<!--..left-->
<div id="annotations">
</div>
</div>
<nav>
<a href="x14.html">← 14 Программа </a> –
<a href="index.html" class="toc-nav">Содержание</a> –
<a href="x15.1.html">15.1 Глобальный объект →</a>
<h2 id="x15">15 Стандартные встроенные объекты ECMAScript <a href="#x15">#</a> <a href="#x15-toc" class="bak">Ⓣ</a> <b class="erra">Ⓔ</b> <b class="rev1">①</b> <b class="anno">Ⓐ</b></h2>
<p>
С началом выполнения программы на ECMAScript доступны определенные встроенные объекты. Один из них – <a href="x15.1.html#x15.1" class="term-ref">глобальный объект</a> – является частью <a href="x10.html#x10.2">Лексического Окружения</a> исполняемой программы. Другие объекты доступны в качестве исходных свойств <a href="x15.1.html#x15.1" class="term-ref">глобального объекта</a>.</p>
<p>
Если не указано иначе, то внутренним свойством [[Class]] встроенного объекта является <code><b>"Function"</b></code>, если у этого встроенного объекта имеется внутреннее свойство [[Call]], или <code><b>"Object"</b></code>, если у этого встроенного объекта нет внутреннего свойства [[Call]]. Если не указано иначе, то изначально значение внутреннего свойства [[Extensible]] встроенного объекта равно <b>true</b>.</p>
<p>
Многие встроенные объекты являются функциями: они могут быть вызваны с аргументами. Более того, некоторые из них являются конструкторами, то есть – функциями, используемыми с оператором <code><b>new</b></code>. Для каждой встроенной функции данная спецификация описывает требуемые этой функцией аргументы, а также свойства объекта типа Function. Кроме того, для каждого встроенного конструктора данная спецификация описывает свойства объекта-прототипа этого конструктора, а также свойства конкретных экземпляров объекта, которые возвращаются выражением <code><b>new</b></code>, вызывающим этот конструктор.</p>
<p>
Если в описании какой-либо конкретной функции не указано иначе, то, если функции или конструктору, о которых идет речь в данной главе, передаётся меньше аргументов, чем требуется для данной функции, эта функция или конструктор будут вести себя в точности так, как если бы все им были переданы недостающие аргументы со значением <b>undefined</b>.</p>
<p>
Если в описании какой-либо конкретной функции не указано иначе, то, если функции или конструктору, о которых идет речь в данной главе, передаётся больше аргументов, чем разрешено для данной функции, то лишние аргументы будут вычисляться при вызове и затем будут проигнорированы этой функцией. При этом реализация может определять обусловленное конкретной реализацией поведение, касающееся этих лишних аргументов. Но это поведение не заключается в генерировании исключения <b><a href="x15.11.html#x15.11.6.5" class="term-ref">TypeError</a></b>, поскольку уже сам факт наличия лишних аргументов обеспечивает появление этого исключения.</p>
<p><b>ПРИМЕЧАНИЕ</b> Если реализация должна добавлять к набору встроенных функций дополнительные возможности, рекомендуется это делать не путём добавления к существующим функциям новых параметров, а путём добавления новых функций.</p>
<p>
В качестве значения внутреннего свойства [[Prototype]] каждая встроенная функция и каждый встроенный конструктор имеет <a href="x15.3.html#x15.3.4">объект-прототип Function</a>, который представляет собой начальное значение выражения <code><b><a href="x15.3.html#x15.3.3.1">Function.prototype</a></b></code> (<a href="x15.3.html#x15.3.4">15.3.4</a>).</p>
<p>
Если не указано иначе, в качестве значения внутреннего свойства [[Prototype]] каждый встроенный объект-прототип имеет <a href="x15.3.html#x15.3.4">объект-прототип Object</a>, представляющий собой начальное значение выражения <code><b><a href="x15.2.html#x15.2.3.1">Object.prototype</a></b></code> (<a href="x15.2.html#x15.2.4">15.2.4</a>). (Это не относится к самому объекту-прототипу Object).</p>
<p>
Ни одна из описываемых в данной Главе встроенных функций, не являющихся конструкторами, не должна реализовывать внутренний метод [[Construct]], если только в описании какой-либо конкретной функции не указано иначе. Ни одна из описываемых в данной Главе встроенных функций не должна иметь свойство <code><b>prototype</b></code>, если только в описании какой-либо конкретной функции не указано иначе.</p>
<p>
В данной главе в целом описываются отдельные варианты поведения в случаях, когда конструктор "вызывается как функция" и в случаях, когда он "вызывается как часть выражения <b>new</b>". Поведение, когда конструктор "вызывается как функция" соответствует вызову внутреннего метода [[Call]] этого конструктора, а поведение, когда конструктор "вызывается как часть выражения new", соответствует вызову внутреннего метода [[Construct]] этого конструктора.
</p>
<p>
Каждый описываемый в данной главе объект типа Function (используемый либо в качестве конструктора, либо в качестве обычной функции, или в качестве и того и другого), имеет свойство <code><b>length</b></code> с целочисленным значением. Если не указано иначе, это значение равно наибольшему количеству именованных аргументов, показываемых в заголовках подвыражения для описания функции, включая необязательные параметры.</p>
<p><b>ПРИМЕЧАНИЕ</b> Например, объект типа Function, который представляет собой начальное значение свойства <code>slice</code> для объекта-прототипа String, описан под заголовком подвыражения “String.prototype.slice (start, end)”, который показывает два именованные аргумента start и end, поэтому значение свойства <code>length</code> этого объекта Function равно <code>2</code>.</p>
<p>
В каждом случае свойство <code><b>length</b></code> встроенного объекта Function, описанного в этом выражении, имеет атрибуты { [[Writable]]: <b>false</b>, [[Enumerable]]: <b>false</b>, [[Configurable]]: <b>false</b> }. Все остальные свойства, описанные в данном выражении, имеют атрибуты { [[Writable]]: <b>true</b>, [[Enumerable]]: <b>false</b>, [[Configurable]]: <b>true</b> }, если не указано иначе.</p>
</body><script src="anno.js"></script></html>