【发布时间】:2010-12-10 15:08:42
【问题描述】:
我有一些从 JSON 反序列化的对象,我想为其分配一个新原型,以便提供各种 getter 和 setter 函数。这样做的明显方法(如this question 中所述)是设置
myJsonObj.__proto__ = { function1: /* ... */, function2: /* ... */ };
但是,作为 MDC helpfully points out,__proto__ 属性是非标准的且已弃用。是否有任何符合标准的方式(对于“标准”的某些定义)来实现相同的效果,而无需创建大量新的包装器对象?
【问题讨论】:
-
您链接到的文档建议您“改用 Object.getPrototypeOf()”(getPrototypeOf())。所以是这样的:
var proto = myJsonObj.getPrototypeOf(); proto.function1 = /*whatever*/; proto.function2=/*whatever*/; -
Lee,如果我没记错的话,调用
Object.getPrototypeOf(myJsonObj)会得到Object.prototype(因为myJsonObj没有任何其他构造函数)。这意味着按照您的建议,我将修改Object(非常糟糕),而不是将一个类注入myJsonObj。
标签: javascript json prototype