SAMPAI saya telah melakukan semuanya salah sehubungan dengan refleksi objek API. Saya tidak memperhitungkan bahwa beberapa properti didefinisikan sebagai non-enumerable secara default, seperti yang ada di prototype API asli atau bawaan
function inspect(obj) {
var a = [];
for (var k in obj) {
a.push(k);
}
console.log(a);
return a;
}
inspect('hello'); // ["0", "1", "2", "3", "4"]
inspect({ name: ''}); // ["name"]
inspect(String); // []
// inherited
function Class(v) {
this.v = v;
};
Class.prototype = {x: '1', y: '2', z: '9'};
inspect(Class); // []
inspect(Class.prototype); // ["x", "y", "z"]
0 mengembalikan kunci untuk item yang dapat dihitung pada suatu objek, dan merupakan kunci "sendiri" (i. e. , yang tidak diwariskan dari prototipe objek)
Putaran function inspect(obj) {
var a = [];
for (var k in obj) {
a.push(k);
}
console.log(a);
return a;
}
inspect('hello'); // ["0", "1", "2", "3", "4"]
inspect({ name: ''}); // ["name"]
inspect(String); // []
// inherited
function Class(v) {
this.v = v;
};
Class.prototype = {x: '1', y: '2', z: '9'};
inspect(Class); // []
inspect(Class.prototype); // ["x", "y", "z"]
3
Pernyataan
function inspect(obj) {
var a = [];
for (var k in obj) {
a.push(k);
}
console.log(a);
return a;
}
inspect('hello'); // ["0", "1", "2", "3", "4"]
inspect({ name: ''}); // ["name"]
inspect(String); // []
// inherited
function Class(v) {
this.v = v;
};
Class.prototype = {x: '1', y: '2', z: '9'};
inspect(Class); // []
inspect(Class.prototype); // ["x", "y", "z"]
3 mengulangi properti yang dapat dihitung dari suatu objek, dalam urutan sewenang-wenang… Perulangan akan mengulangi semua properti yang dapat dihitung dari objek itu sendiri dan yang diwarisi objek dari prototipe konstruktornya
https. // pengembang. mozilla. org/en-US/docs/Web/JavaScript/Reference/Statements/for. di dalam
function inspect(obj) {
var a = [];
for (var k in obj) {
a.push(k);
}
console.log(a);
return a;
}
inspect('hello'); // ["0", "1", "2", "3", "4"]
inspect({ name: ''}); // ["name"]
inspect(String); // []
// inherited
function Class(v) {
this.v = v;
};
Class.prototype = {x: '1', y: '2', z: '9'};
inspect(Class); // []
inspect(Class.prototype); // ["x", "y", "z"]
function inspect(obj) {
var a = [];
for (var k in obj) {
a.push(k);
}
console.log(a);
return a;
}
inspect('hello'); // ["0", "1", "2", "3", "4"]
inspect({ name: ''}); // ["name"]
inspect(String); // []
// inherited
function Class(v) {
this.v = v;
};
Class.prototype = {x: '1', y: '2', z: '9'};
inspect(Class); // []
inspect(Class.prototype); // ["x", "y", "z"]
_1
Obyek. getOwnPropertyNames() mengembalikan array yang elemennya adalah string yang sesuai dengan properti enumerable dan non-enumerable yang ditemukan langsung pada obj
Gunakan ini saat Anda ingin mengkueri objek atau fungsi asli atau bawaan untuk API properti "sendiri".
Apa yang bukan
Objek dapat memiliki properti yang tidak muncul saat diulang melalui objek tertentu menggunakan Object. keys() atau untuk. dalam lingkaran . Jenis properti tersebut disebut sebagai properti yang tidak dapat dihitung.
Apa itu properti yang dapat dihitung dalam JavaScript?
Properti yang dapat dihitung adalah properti yang bendera enumerable internalnya disetel ke true , yang merupakan default untuk properti yang dibuat melalui penetapan sederhana atau melalui . Properti didefinisikan melalui Objek. defineProperty dan semacamnya tidak dapat dihitung secara default.
Bagaimana cara memeriksa apakah properti adalah JavaScript yang dapat dihitung?
defineProperty() digunakan. Selain itu, untuk memeriksa apakah suatu properti dapat dihitung atau tidak, kami menggunakan fungsi propertyIsEnumerable() . Mengembalikan nilai true jika properti dapat dihitung atau false sebaliknya.
Apa perbedaan antara iterable dan enumerable dalam JavaScript?