diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/javascript/reference/global_objects/object/getownpropertydescriptor | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/object/getownpropertydescriptor')
-rw-r--r-- | files/ru/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html b/files/ru/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html new file mode 100644 index 0000000000..94c1bce570 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html @@ -0,0 +1,148 @@ +--- +title: Object.getOwnPropertyDescriptor() +slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor +tags: + - ECMAScript5 + - JavaScript + - Method + - Object +translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor +--- +<div>{{JSRef("Global_Objects", "Object")}}</div> + +<h2 id="Summary" name="Summary">Сводка</h2> +<p>Метод <code><strong>Object.getOwnPropertyDescriptor()</strong></code> возвращает дескриптор свойства для <dfn>собственного свойства</dfn> (то есть такого, которое находится непосредственно в объекте, а не получено через цепочку прототипов) переданного объекта.</p> + +<h2 id="Syntax" name="Syntax">Синтаксис</h2> +<pre class="syntaxbox"><code>Object.getOwnPropertyDescriptor(<var>obj</var>, <var>prop</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Параметры</h3> +<dl> + <dt><code>obj</code></dt> + <dd>Объект, в котором ищется свойство.</dd> + <dt><code>prop</code></dt> + <dd>Имя свойства, чьё описание будет возвращено.</dd> +</dl> + +<h3 id="Returns" name="Returns">Возвращаемое значение</h3> +<p>Дескриптор переданного свойства, если оно присутствует в объекте, либо {{jsxref("undefined")}}, если его там нет.</p> + +<h2 id="Description" name="Description">Описание</h2> +<p>Этот метод позволяет просмотреть точное описание свойства. <dfn>Свойство</dfn> в JavaScript состоит из строкового имени и дескриптора свойства. Подробная информация о типах дескрипторов свойств и их атрибутах может быть найдена в описании метода {{jsxref("Object.defineProperty()")}}.</p> +<p><dfn>Дескриптор свойства</dfn> — это запись с некоторыми из следующих атрибутов:</p> +<dl> + <dt><code>value</code></dt> + <dd>Значение, ассоциированное со свойством (только в дескрипторе данных).</dd> + <dt><code>writable</code></dt> + <dd>Значение <code>true</code>, если значение, ассоциированное со свойством, может быть изменено, иначе <code>false</code> (только в дескрипторе данных).</dd> + <dt><code>get</code></dt> + <dd>Функция, возвращающая значение свойства, либо {{jsxref("undefined")}}, если такая функция отсутствует (только в дескрипторе доступа).</dd> + <dt><code>set</code></dt> + <dd>Функция, изменяющая значение свойства, либо {{jsxref("undefined")}}, если такая функция отсутствует (только в дескрипторе доступа).</dd> + <dt><code>configurable</code></dt> + <dd>Значение <code>true</code>, если тип дескриптора этого свойства может быть изменён и если свойство может быть удалено из содержащего его объекта, иначе <code>false</code>.</dd> + <dt><code>enumerable</code></dt> + <dd>Значение <code>true</code>, если это свойство доступно при перечислении свойств содержащего его объекта, иначе <code>false</code>.</dd> +</dl> + +<h2 id="Examples" name="Examples">Примеры</h2> +<pre class="brush: js">var o, d; + +o = { get foo() { return 17; } }; +d = Object.getOwnPropertyDescriptor(o, 'foo'); +// d равен { configurable: true, enumerable: true, get: /*функция геттера*/, set: undefined } + +o = { bar: 42 }; +d = Object.getOwnPropertyDescriptor(o, 'bar'); +// d равен { configurable: true, enumerable: true, value: 42, writable: true } + +o = {}; +Object.defineProperty(o, 'baz', { value: 8675309, writable: false, enumerable: false }); +d = Object.getOwnPropertyDescriptor(o, 'baz'); +// d равен { value: 8675309, writable: false, enumerable: false, configurable: false } +</pre> + +<h2 id="Notes" name="Notes">Примечания</h2> +<p>В ES5, если первый аргумент метода не является объектом (является примитивным значением), будет выброшено исключение {{jsxref("Global_Objects/TypeError", "TypeError")}}. В ES6 такой аргумент будет сначала приведён к объекту.</p> +<pre class="brush: js">> Object.getOwnPropertyDescriptor('foo', 0) +TypeError: "foo" is not an object // код ES5 + +> Object.getOwnPropertyDescriptor('foo', 0) +{ configurable: false, enumerable: true, value: 'f', writable: false } // код ES6 +</pre> + +<h2 id="Specifications" name="Specifications">Спецификации</h2> +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецификация</th> + <th scope="col">Статус</th> + <th scope="col">Комментарии</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.3.3', 'Object.getOwnPropertyDescriptor')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Изначальное определение. Реализована в JavaScript 1.8.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</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>{{CompatChrome("5")}}</td> + <td>{{CompatGeckoDesktop("2")}}</td> + <td>{{CompatIE("8")}}</td> + <td>{{CompatOpera("12 alpha")}}</td> + <td>{{CompatSafari("5")}}</td> + </tr> + </tbody> + </table> +</div> +<div id="compat-mobile"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Android</th> + <th>Chrome для Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> + </table> +</div> +<p>На основе <a class="external" href="http://kangax.github.com/es5-compat-table/">таблицы совместимости Kangax</a>.</p> + +<h2 id="See_also" name="See_also">Смотрите также</h2> +<ul> + <li>{{jsxref("Object.defineProperty()")}}</li> +</ul> |