jsの中の列挙と列挙することができません.
3280 ワード
列挙は何ですか
列挙とは、オブジェクトの属性が遍歴できますか?
jsでは基本的なデータタイプは列挙されません.例えばObject、Arayなどです.
列挙の方法の違い
1.for...inサイクルは、オブジェクト自体が持つ属性を列挙(遍歴)し、Object.defineProperty()方法によって付加されるエニュメレーション属性、またはプロトタイプオブジェクトによって結合されたエニュメレート・属性を列挙することができる.
列挙とは、オブジェクトの属性が遍歴できますか?
jsでは基本的なデータタイプは列挙されません.例えばObject、Arayなどです.
列挙の方法の違い
1.for...inサイクルは、オブジェクト自体が持つ属性を列挙(遍歴)し、Object.defineProperty()方法によって付加されるエニュメレーション属性、またはプロトタイプオブジェクトによって結合されたエニュメレート・属性を列挙することができる.
function enumer() {
this.a = ' ';
}
enumer.prototype.b = ' ';
let fn = new enumer();
Object.defineProperty(fn, 'c', {
value: ' Object.defineProperty ',
enumerable: true //
});
for(let item in fn) {
console.log(item);
}
/* */
// a
// b
// c
2.Object.keys()メソッドは、オブジェクト自体の属性とObject.defineProperty()によって追加されたエニュメレーション属性を列挙することができます.function enumer() {
this.a = ' ';
}
enumer.prototype.b = ' ';
let fn = new enumer();
Object.defineProperty(fn, 'c', {
value: ' Object.defineProperty ',
enumerable: true
});
console.log(Object.keys(fn));
/* */
// ["a", "c"]
3.JSON.strigify()方法は、自分の属性とObject.defineProperty()によって追加されたエニュメレーション属性のみを序列化することができます.JSONオブジェクトです.function enumer() {
this.a = ' ';
}
enumer.prototype.b = ' ';
let fn = new enumer();
Object.defineProperty(fn, 'c', {
value: ' Object.defineProperty ',
enumerable: true
});
console.log(JSON.stringify(fn));
// {"a":" ","c":" Object.defineProperty "}
を選択します.