Object.prototype.propertyIsEnumerable()

  • リビジョンの URL スラッグ: JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable
  • リビジョンのタイトル: propertyIsEnumerable
  • リビジョンの ID: 163802
  • 作成日:
  • 作成者: Mgjbot
  • 現行リビジョン いいえ
  • コメント robot Adding: [[fr:Référence de JavaScript 1.5 Core:Objets globaux:Object:propertyIsEnumerable]] <<langbot>>

このリビジョンの内容

概要

指定されたプロパティが{{ 原語併記("列挙可能", "enumerable") }} かどうかを示す真偽値を返します。

構文

propertyIsEnumerable(prop)

パラメータ

prop 
調べたいプロパティの名前。

説明

Object の子孫にあたるあらゆるオブジェクトは propertyIsEnumerable メソッドを継承しています。このメソッドはあるオブジェクトのプロパティが for...in ループで列挙可能かどうかを特定することができます。もしオブジェクトが指定されたプロパティを持っていない場合、このメソッドは false を返します。for...in はオブジェクトのプロトタイプチェーンを考慮しますが、このメソッドはオブジェクトのプロトタイプチェーンを通じて継承されたプロパティには利きません。

例: propertyIsEnumerable の基本的な使い方

以下の例はオブジェクトと配列での propertyIsEnumerable の使い方を示しています。

o = new Object();
a = new Array();
o.prop = 'is enumerable';
a[0] = 'is enumerable';

o.propertyIsEnumerable('prop');   // true を返す
a.propertyIsEnumerable(0);        // true を返す

例: ユーザー定義オブジェクトと組み込みオブジェクト

以下の例はユーザー定義プロパティと組み込みプロパティの列挙可能性を実証しています。

a = new Array('is enumerable');

a.propertyIsEnumerable(0);          // true を返す
a.propertyIsEnumerable('length');   // false を返す

Math.propertyIsEnumerable('random');   // false を返す
this.propertyIsEnumerable('Math');     // false を返す

例: 直接のプロパティと継承されたプロパティ

a = new Array();
a.propertyIsEnumerable('constructor');   // false を返す

function myConstructor() {
  this.isnot = 'not enumerable';
}

function secondConstructor() {
  this.is = 'is enumerable';
}

secondConstructor.prototype = new myConstructor;

o = new secondConstructor();
o.prop = 'is';

o.propertyIsEnumerable('is');      // true を返す
o.propertyIsEnumerable('prop');    // true を返す
o.propertyIsEnumerable('isnot');   // false を返す

参照

for...in

{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/propertyIsEnumerable", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Objets_globaux/Object/propertyIsEnumerable" } ) }}

このリビジョンのソースコード

<p> </p>
<h3 id=".E6.A6.82.E8.A6.81" name=".E6.A6.82.E8.A6.81"> 概要 </h3>
<p>指定されたプロパティが{{ 原語併記("列挙可能", "enumerable") }} かどうかを示す真偽値を返します。
</p>
<h3 id=".E6.A7.8B.E6.96.87" name=".E6.A7.8B.E6.96.87"> 構文 </h3>
<p><code>
propertyIsEnumerable(<i>prop</i>)
</code>
</p>
<h3 id=".E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF" name=".E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF"> パラメータ </h3>
<dl><dt> <code>prop</code> </dt><dd> 調べたいプロパティの名前。
</dd></dl>
<h3 id=".E8.AA.AC.E6.98.8E" name=".E8.AA.AC.E6.98.8E"> 説明 </h3>
<p><code>Object</code> の子孫にあたるあらゆるオブジェクトは <code>propertyIsEnumerable</code> メソッドを継承しています。このメソッドはあるオブジェクトのプロパティが <code><a href="ja/Core_JavaScript_1.5_Reference/Statements/for...in">for...in</a></code> ループで列挙可能かどうかを特定することができます。もしオブジェクトが指定されたプロパティを持っていない場合、このメソッドは false を返します。<code>for...in</code> はオブジェクトのプロトタイプチェーンを考慮しますが、このメソッドはオブジェクトのプロトタイプチェーンを通じて継承されたプロパティには利きません。
</p>
<h3 id=".E4.BE.8B" name=".E4.BE.8B"> 例 </h3>
<h4 id=".E4.BE.8B:_propertyIsEnumerable_.E3.81.AE.E5.9F.BA.E6.9C.AC.E7.9A.84.E3.81.AA.E4.BD.BF.E3.81.84.E6.96.B9" name=".E4.BE.8B:_propertyIsEnumerable_.E3.81.AE.E5.9F.BA.E6.9C.AC.E7.9A.84.E3.81.AA.E4.BD.BF.E3.81.84.E6.96.B9"> 例: <code>propertyIsEnumerable</code> の基本的な使い方 </h4>
<p>以下の例はオブジェクトと配列での <code>propertyIsEnumerable</code> の使い方を示しています。
</p>
<pre>o = new Object();
a = new Array();
o.prop = 'is enumerable';
a[0] = 'is enumerable';

o.propertyIsEnumerable('prop');   // true を返す
a.propertyIsEnumerable(0);        // true を返す
</pre>
<h4 id=".E4.BE.8B:_.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E5.AE.9A.E7.BE.A9.E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88.E3.81.A8.E7.B5.84.E3.81.BF.E8.BE.BC.E3.81.BF.E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88" name=".E4.BE.8B:_.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E5.AE.9A.E7.BE.A9.E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88.E3.81.A8.E7.B5.84.E3.81.BF.E8.BE.BC.E3.81.BF.E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88"> 例: ユーザー定義オブジェクトと組み込みオブジェクト </h4>
<p>以下の例はユーザー定義プロパティと組み込みプロパティの列挙可能性を実証しています。
</p>
<pre>a = new Array('is enumerable');

a.propertyIsEnumerable(0);          // true を返す
a.propertyIsEnumerable('length');   // false を返す

Math.propertyIsEnumerable('random');   // false を返す
this.propertyIsEnumerable('Math');     // false を返す
</pre>
<h4 id=".E4.BE.8B:_.E7.9B.B4.E6.8E.A5.E3.81.AE.E3.83.97.E3.83.AD.E3.83.91.E3.83.86.E3.82.A3.E3.81.A8.E7.B6.99.E6.89.BF.E3.81.95.E3.82.8C.E3.81.9F.E3.83.97.E3.83.AD.E3.83.91.E3.83.86.E3.82.A3" name=".E4.BE.8B:_.E7.9B.B4.E6.8E.A5.E3.81.AE.E3.83.97.E3.83.AD.E3.83.91.E3.83.86.E3.82.A3.E3.81.A8.E7.B6.99.E6.89.BF.E3.81.95.E3.82.8C.E3.81.9F.E3.83.97.E3.83.AD.E3.83.91.E3.83.86.E3.82.A3"> 例: 直接のプロパティと継承されたプロパティ </h4>
<pre>a = new Array();
a.propertyIsEnumerable('constructor');   // false を返す

function myConstructor() {
  this.isnot = 'not enumerable';
}

function secondConstructor() {
  this.is = 'is enumerable';
}

secondConstructor.prototype = new myConstructor;

o = new secondConstructor();
o.prop = 'is';

o.propertyIsEnumerable('is');      // true を返す
o.propertyIsEnumerable('prop');    // true を返す
o.propertyIsEnumerable('isnot');   // false を返す
</pre>
<h3 id=".E5.8F.82.E7.85.A7" name=".E5.8F.82.E7.85.A7"> 参照 </h3>
<p><a href="ja/Core_JavaScript_1.5_Reference/Statements/for...in">for...in</a>
</p>
<div class="noinclude">
</div>
{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Object/propertyIsEnumerable", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Objets_globaux/Object/propertyIsEnumerable" } ) }}
Revert to this revision