在当前的Ecmascript 6草案(2012年11月)中,官方支持
如果当前的草案得以通过,ES6是否会完全支持可变原型?我是否能够像在Firefox中一样为现有对象提供新原型?
__proto__
属性(第B.3.1节)。这有点令人惊讶,因为在当前的浏览器实现中,__proto__
属性已被弃用。如果当前的草案得以通过,ES6是否会完全支持可变原型?我是否能够像在Firefox中一样为现有对象提供新原型?
__proto__
属性已经被“废弃”,因为它不是标准属性,建议使用Object.getPrototypeOf(someObject);
(ECMA5 标准,因此支持跨浏览器)。除此之外,在运行时更改原型并不是什么新鲜事物:我在 Chrome 和 IE 中尝试将自定义对象的原型更改为new Array
,没有任何问题... 这只是原型模型固有的特性。 - Elias Van OotegemReflect.setPrototypeOf
。关于它被错误地放置的讨论已经进行了一段时间,听起来__proto__
最终会被使用,但目前仍有些不确定。 - Nathan Wall