分配给__proto__属性的正确方法

kpo*_*zin 6 javascript json prototype

我有一些从JSON反序列化的对象,我想分配一个新的原型,以提供各种getter和setter函数.这样做的明显方法(如本问题中所述)是设置

myJsonObj.__proto__ = { function1: /* ... */, function2: /* ... */ };
Run Code Online (Sandbox Code Playgroud)

但是,正如MDC帮助指出的那样,该__proto__属性是非标准的并且已被弃用.是否有任何符合标准的方法(对于某些"标准"的定义)来实现相同的效果,而不必创建大量新的包装器对象?

Mik*_*uel 4

没有符合标准的方法可以在对象创建后更改其原型。有一种符合标准的方法可以在解析 JSON 时使用您想要的任何原型创建对象。

来自http://www.json.org/js.html

可选的 reviver 参数是一个函数,将为最终结果的每个级别的每个键和值调用。每个值都将被reviver 函数的结果替换。这可用于将通用对象重新转换为伪类的实例,或将日期字符串转换为日期对象。