diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/object/propertyisenumerable')
-rw-r--r-- | files/uk/web/javascript/reference/global_objects/object/propertyisenumerable/index.html | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/object/propertyisenumerable/index.html b/files/uk/web/javascript/reference/global_objects/object/propertyisenumerable/index.html new file mode 100644 index 0000000000..b7eafe88f0 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/object/propertyisenumerable/index.html @@ -0,0 +1,149 @@ +--- +title: Object.prototype.propertyIsEnumerable() +slug: Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable +tags: + - JavaScript + - Об'єкт + - метод +translation_of: Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable +--- +<div>{{JSRef}}</div> + +<p>Метод <code><strong>propertyIsEnumerable()</strong></code> повертає булеве значення, що позначає, чи є вказана властивість перелічуваною.</p> + +<div>{{EmbedInteractiveExample("pages/js/object-prototype-propertyisenumerable.html")}}</div> + + + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre class="syntaxbox"><code><var>obj</var>.propertyIsEnumerable(<var>prop</var>)</code></pre> + +<h3 id="Параметри">Параметри</h3> + +<dl> + <dt><code>prop</code></dt> + <dd>Ім'я властивості, яку необхідно перевірити.</dd> +</dl> + +<h3 id="Значення_що_повертається">Значення, що повертається</h3> + +<p>{{jsxref("Boolean","Булеве значення")}}, що позначає, чи є вказана властивість перелічуваною.</p> + +<h2 id="Опис">Опис</h2> + +<p>Кожен об'єкт має метод <code>propertyIsEnumerable</code>. Цей метод може визначити, чи може вказана властивість об'єкта бути перелічена циклом {{jsxref("Statements/for...in", "for...in")}}, за винятком властивостей, успадкованих через ланцюжок прототипів. Якщо об'єкт не має вказаної властивості, метод поверне <code>false</code>.</p> + +<h2 id="Приклади">Приклади</h2> + +<h3 id="Базове_використання_propertyIsEnumerable">Базове використання <code>propertyIsEnumerable</code></h3> + +<p>Наступний приклад демонструє використання <code>propertyIsEnumerable</code> на об'єктах та масивах:</p> + +<pre class="brush: js">var o = {}; +var a = []; +o.prop = 'перелічувана'; +a[0] = 'перелічувана'; + +o.propertyIsEnumerable('prop'); // повертає true +a.propertyIsEnumerable(0); // повертає true +</pre> + +<h3 id="Визначені_користувачем_обєкти_проти_вбудованих_обєктів">Визначені користувачем об'єкти проти вбудованих об'єктів</h3> + +<p>Наступний приклад демонструє перелічуваність визначених користувачем властивостей у порівнянні з вбудованими:</p> + +<pre class="brush: js">var a = ['перелічувана']; + +a.propertyIsEnumerable(0); // повертає true +a.propertyIsEnumerable('length'); // повертає false + +Math.propertyIsEnumerable('random'); // повертає false +this.propertyIsEnumerable('Math'); // повертає false +</pre> + +<h3 id="Прямі_властивості_проти_успадкованих">Прямі властивості проти успадкованих</h3> + +<pre class="brush: js">var a = []; +a.propertyIsEnumerable('constructor'); // повертає false + +function firstConstructor() { + this.property = 'не перелічувана'; +} + +firstConstructor.prototype.firstMethod = function() {}; + +function secondConstructor() { + this.method = function method() { return 'перелічувана'; }; +} + +secondConstructor.prototype = new firstConstructor; +secondConstructor.prototype.constructor = secondConstructor; + +var o = new secondConstructor(); +o.arbitraryProperty = 'перелічувана'; + +o.propertyIsEnumerable('arbitraryProperty'); // повертає true +o.propertyIsEnumerable('method'); // повертає true +o.propertyIsEnumerable('property'); // повертає false + +o.property = 'перелічувана'; + +o.propertyIsEnumerable('property'); // повертає true + +// Наступні повертають false, оскільки вони присутні на прототипі, який +// propertyIsEnumerable не враховує (хоча останні дві +// перебираються циклом for-in) +o.propertyIsEnumerable('prototype'); // повертає false (згідно з JS 1.8.1/FF3.6) +o.propertyIsEnumerable('constructor'); // повертає false +o.propertyIsEnumerable('firstMethod'); // повертає false +</pre> + +<h2 id="Специфікації">Специфікації</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Специфікація</th> + <th scope="col">Статус</th> + <th scope="col">Коментар</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Початкове визначення</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.4.7', 'Object.prototype.propertyIsEnumerable')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.prototype.propertyisenumerable', 'Object.prototype.propertyIsEnumerable')}}</td> + <td>{{Spec2('ES6')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-object.prototype.propertyisenumerable', 'Object.prototype.propertyIsEnumerable')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> + +<div> + + +<p>{{Compat("javascript.builtins.Object.propertyIsEnumerable")}}</p> +</div> + +<h2 id="Див._також">Див. також</h2> + +<ul> + <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li> + <li>{{jsxref("Statements/for...in", "for...in")}}</li> + <li>{{jsxref("Object.keys()")}}</li> + <li>{{jsxref("Object.defineProperty()")}}</li> +</ul> |