[解決済み] enumerableとはどういう意味ですか?
2022-04-24 22:06:01
質問
MDNの ページ内 という文章があり、「for..in オブジェクトの列挙可能なプロパティを繰り返し処理する」とありました。
そして プロパティの列挙と所有権のページ Enumerable properties are those that can be iterated by a for.in loop."
辞書によると、enumerableはcountableと定義されていますが、その意味がよくイメージできません。何か列挙可能なものの例を教えてください。
どのように解決するのですか?
列挙可能なプロパティとは、以下の期間中に含まれたり訪問されたりすることができるものです。
for..in
のループ(または同様のプロパティの繰り返し、例えば
Object.keys()
).
プロパティが列挙可能であると認識されていない場合、ループはそのプロパティがオブジェクト内にあることを無視します。
var obj = { key: 'val' };
console.log('toString' in obj); // true
console.log(typeof obj.toString); // "function"
for (var key in obj)
console.log(key); // "key"
プロパティが列挙可能かどうかは、それ自体で識別されます。
[[Enumerable]]
属性
. の一部として表示することができます。
プロパティの記述子
:
var descriptor = Object.getOwnPropertyDescriptor({ bar: 1 }, 'bar');
console.log(descriptor.enumerable); // true
console.log(descriptor.value); // 1
console.log(descriptor);
// { value: 1, writable: true, enumerable: true, configurable: true }
A
for..in
ループは、オブジェクトのプロパティ名を反復します。
var foo = { bar: 1, baz: 2};
for (var prop in foo)
console.log(prop); // outputs 'bar' and 'baz'
しかし、そのステートメントを評価するのみである
console.log(prop);
この場合
[[Enumerable]]
属性が
true
.
この条件が成立するのは、オブジェクト は、さらに多くのプロパティを持っています。 、特に 継承から :
console.log(Object.getOwnPropertyNames(Object.prototype));
// ["constructor", "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", /* etc. */]
これらの各プロパティはまだ オブジェクトに存在する :
console.log('constructor' in foo); // true
console.log('toString' in foo); // true
// etc.
しかし、それらは
for..in
ループを使用します。
var descriptor = Object.getOwnPropertyDescriptor(Object.prototype, 'constructor');
console.log(descriptor.enumerable); // false
関連
-
Vueのクラススタイルの使い方の詳細
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] javascript:void(0)」とは何ですか?
-
[解決済み】JavaScript版sleep()とは?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptの関数この指摘の問題を説明
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
JavaScriptのクロージャの説明
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
vueにおけるfilterの適用シーンについて解説します。
-
Vueのフィルタの説明
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
JavaScriptのStringに関する共通メソッド
-
nullのプロパティinnerHTMLを読み取れません エラーメッセージ
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された