__proto__和Object.getPrototype是否公开了完全相同的功能?

时间:2016-03-17 13:07:17

标签: javascript ecmascript-6

ES2015中__proto__的标准化是否否定了对Object.getPrototypeOf的需求?

1 个答案:

答案 0 :(得分:7)

  

__proto__Object.getPrototype是否公开了完全相同的功能?

没有。 .__proto__仅适用于从Object.prototype继承的对象。并且Object.getPrototype不允许改变原型。

  

ES2015中__proto__的标准化是否否定了对Object.getPrototypeOf的需求?

你已经倒退了。 ES5 Object.getPrototypeOf和ES6 Object.setPrototypeOf完全否定了使用__proto__的必要性。

Object.prototype.__proto__访问器属性仅在ES6中标准化,以实现向后兼容性和需要它的实现之间的互操作性。它被明确标记为Web遗留功能。检查note on Annex B(“ ...遗留功能[用于]基于Web浏览器的ECMAScript实现。[它们]具有不良特性,并且[...]将从此规范中删除[如果不使用]大现有网页的数量[...]。程序员在编写新的ECMAScript代码时不应使用或假设存在[他们]。不鼓励ECMAScript实现这些功能。“)

相关问题