function Object.create(o) {
function F() {}
F.prototype = o;
return new F();
}
我认为这等效于 Object.create 的当前 ES6 实现。
new
关键字不存在,它显然发生了变化)?原来的。这是一个关于 Javascript 历史的事实问题,可以回答,我不明白为什么删除以前的,所以我澄清一下。new
的定义是否等同于有它的定义?答案 0 :(得分:1)
之前的版本是什么(因为 new 关键字不存在,显然已经改变了)?
一个都没有。 new
一直存在于 JavaScript 中。
不带 new
的定义是否等同于带它的定义?
在 ES5 标准库中添加 Object.create
之前,没有任何版本没有 new
。 standard version 直接使用给定的原型创建一个对象,而不必通过构造函数调用来完成,但结果是相同的,只是没有创建不必要的构造函数。
如果更改了,是否还有其他更改(由 Good Parts 作者或官方提供)?例如ES5,如果它不等同于 ES6。
它没有改变。标准版本是在 ES5(不是 ES2015/ES6)中添加的,此后没有发生实质性变化。 (规范的文本发生了变化,因为从那时起整个规范发生了相当大的变化,但所采取的基本步骤和结果是相同的。)