Object.create 的原始定义是什么?

时间:2021-01-22 08:36:10

标签: javascript oop prototype

function Object.create(o) {
     function F() {} 
     F.prototype = o;
     return new F(); 
}

我认为这等效于 Object.create 的当前 ES6 实现。

  • 之前的版本是什么(由于 new 关键字不存在,它显然发生了变化)?原来的。这是一个关于 Javascript 历史的事实问题,可以回答,我不明白为什么删除以前的,所以我澄清一下。
  • 没有 new 的定义是否等同于有它的定义?
  • 如果更改了,是否还有其他更改(由 Good Parts 作者或官方提供)?例如ES5,如果它不等同于 ES6。

1 个答案:

答案 0 :(得分:1)

<块引用>

之前的版本是什么(因为 new 关键字不存在,显然已经改变了)?

一个都没有。 new 一直存在于 JavaScript 中。

<块引用>

不带 new 的定义是否等同于带它的定义?

在 ES5 标准库中添加 Object.create 之前,没有任何版本没有 newstandard version 直接使用给定的原型创建一个对象,而不必通过构造函数调用来完成,但结果是相同的,只是没有创建不必要的构造函数。

<块引用>

如果更改了,是否还有其他更改(由 Good Parts 作者或官方提供)?例如ES5,如果它不等同于 ES6。

它没有改变。标准版本是在 ES5(不是 ES2015/ES6)中添加的,此后没有发生实质性变化。 (规范的文本发生了变化,因为从那时起整个规范发生了相当大的变化,但所采取的基本步骤和结果是相同的。)

相关问题