2

这个例子的灵感来自 Alex Sexton 的博文Understanding JavaScript Inheritance

var defaults = {};
defaults.x = 1;

var myObject = Object.create(defaults);
console.log(myObject); // {x:1}
myObject.x = 2;
console.log(myObject); // {x:2, x:1}
console.log(myObject.x); // 2

问:有什么方法可以从 myObject 中恢复值 1?我在想类似的东西:

console.log(myObject.parent.x);
4

3 回答 3

2

这适用于 Chrome 和 Firefox。

>>> myObject.__proto__.x
1
于 2013-04-19T17:12:23.340 回答
1

您可以从 myObject 引用默认值

myObject.parent = defaults;
console.log(myObject.parent.x);// 1
于 2013-04-19T17:31:23.003 回答
1

所有主要浏览器的最新版本都支持Object.getPrototypeOf(),需要一些额外的代码来兼容 IE8 和更早版本(检查这个)。如果这对您来说不是问题,您可以执行以下操作:

Object.getPrototypeOf(myObject).x

检查jsfiddle

于 2013-04-19T19:05:46.057 回答