Tengo algunos objetos deserializados de JSON a los que me gustaría asignar un nuevo prototipo para proporcionar diversas funciones getter y setter. La manera obvia de hacer esto (como se menciona en this question) es establecerManera correcta de asignar a la propiedad __proto__
myJsonObj.__proto__ = { function1: /* ... */, function2: /* ... */ };
Sin embargo, como MDC helpfully points out, la propiedad __proto__
no es estándar y en desuso. ¿Hay alguna forma compatible con los estándares (para alguna definición de "estándares") para lograr el mismo efecto, sin tener que crear muchos objetos envoltorios nuevos?
La documentación se ha vinculado a sugiere que "El uso Object.getPrototypeOf() en su lugar" ([getPrototypeOf()] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf)). Entonces algo como esto: 'var proto = myJsonObj.getPrototypeOf(); proto.function1 =/* lo que sea * /; proto.function2 =/* lo que sea * /; ' – Lee
Lee, si no me equivoco, llamar a' Object.getPrototypeOf (myJsonObj) 'me daría' Object.prototype' (ya que 'myJsonObj' no tenía ningún otro constructor) Eso significa que siguiendo su sugerencia, estaría modificando 'Object' (muy mal) en lugar de inyectar una clase en' myJsonObj'. – kpozin