javascript - 为什么 ECMAScript 标准中没有 Object.setPrototypeOf(...)?

标签 javascript ecmascript-6 prototype

显然使用 __proto__ 属性仍然是操作原型(prototype)链的主要方式,尽管这不符合标准并且 IE 不支持它。虽然您也可以通过使用 new 构造函数构造继承,但与 __proto__ 属性或符合标准的 Object.getPrototypeOf 函数相比,这似乎是一个不必要的复杂化.

编辑:

如答案中所述,此方法现在确实存在(ES6 标准)。但是请注意性能警告:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf

最佳答案

它是 ES6 和谐草案的一部分:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf

我现在在最新版本的 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/

相关文章:

javascript - 根据窗口大小调整页面元素的大小

javascript - 无法让基本的 jQuery 逻辑工作

javascript - 最好的 jQuery 插件结构?

javascript - 如何在 react Bootstrap 表中添加按钮?

javascript - 模块化模式与原型(prototype) - Nodejs?

Javascript - 数组在原型(prototype)中未定义?

javascript - 如何对齐和摆脱重叠的视频?

javascript - 定义了一个可以作为对象调用的函数

javascript - 如何在 es6 类中执行 `var self = this`?

javascript - connect react redux HOC 得到错误 `Cannot call a class as a function`