显然使用 __proto__
属性仍然是操作原型(prototype)链的主要方式,尽管这不符合标准并且 IE 不支持它。虽然您也可以通过使用 new
构造函数构造继承,但与 __proto__
属性或符合标准的 Object.getPrototypeOf
函数相比,这似乎是一个不必要的复杂化.
编辑:
如答案中所述,此方法现在确实存在(ES6 标准)。但是请注意性能警告:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
最佳答案
它是 ES6 和谐草案的一部分:
我现在在最新版本的 Chrome 中使用它。
var proto = {
foo: 'bar'
};
var object = {};
Object.setPrototypeOf(object, proto);
console.assert(object.foo == 'bar');
关于javascript - 为什么 ECMAScript 标准中没有 Object.setPrototypeOf(...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281887/