Chciałbym zdefiniować właściwość javascript za pomocą deskryptora właściwości, który ma niestandardowe atrybuty, innymi słowy, atrybuty inne niż standardowa "wartość", "zapisywalny" itp. ... poniżej na przykład Zdefiniowałem właściwość z deskryptor właściwości, który ma niestandardowy atrybut "customAttr". wywołanie Object.defineProperty działa dobrze, ale później, gdy próbuję zapętlić atrybuty deskryptora właściwości, mój atrybut niestandardowy nie jest wyświetlany. Czy to, co próbuję zrobić, jest możliwe? DziękujemyCzy deskryptory własności javascript obsługują atrybuty niestandardowe?
var o = {};
Object.defineProperty(o, "newDataProperty", {
value: 101,
writable: true,
enumerable: true,
configurable: true,
customAttr: 1
});
var desc2 = Object.getOwnPropertyDescriptor(o, "newDataProperty");
// List the descriptor attributes.
for (var prop in desc2) {
console.log(prop + ': ' + desc2[prop]);
}
//PROBLEM: "customAttr" is not listed
Ciekawe, dlaczego chcesz to zrobić? –
cześć james ... zobacz komentarz wprowadzony poniżej pod twoją odpowiedzią ... w czasie wykonywania Chciałbym zapętlić wszystkie właściwości obiektu, sprawdź, które są "udekorowane" pewnymi atrybutami i na podstawie istnienie, nieobecność i wartości tych atrybutów, a następnie przystąpić do "rzeczy", takich jak walidacja nieruchomości ... jeszcze raz dziękuję za odpowiedź – user2073948