Mam kilka obiektów deserialized z JSON, do których chciałbym przypisać nowy prototyp w celu zapewnienia różnych funkcji getter i setter. Oczywistym sposobem, aby to zrobić (jak wspomniano w this question) jest ustawionyPrawidłowy sposób przypisywania do właściwości __proto__
myJsonObj.__proto__ = { function1: /* ... */, function2: /* ... */ };
Jednakże, jak MDC helpfully points out właściwość __proto__
jest nietypowy i przestarzałe. Czy istnieje jakiś zgodny z normami sposób (dla jakiejś definicji "standardów"), aby osiągnąć ten sam efekt, bez konieczności tworzenia wielu nowych obiektów opakowania?
Dokumentacja jesteś związana sugeruje "Use Object.getPrototypeOf() zamiast" ([getPrototypeOf()] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf)). A więc coś takiego: 'var proto = myJsonObj.getPrototypeOf(); proto.function1 =/* niezależnie * /; proto.function2 =/* any * /; ' – Lee
Lee, jeśli się nie mylę, wywołanie' Object.getPrototypeOf (myJsonObj) 'dałoby mi' Object.prototype' (ponieważ 'myJsonObj' nie miałoby żadnego innego konstruktora). Oznacza to, że podążając za twoją sugestią, modyfikowałbym 'Object' (bardzo zły) zamiast wstrzykiwania klasy do' myJsonObj'. – kpozin