【发布时间】:2021-01-22 08:36:10
【问题描述】:
function Object.create(o) {
function F() {}
F.prototype = o;
return new F();
}
我假设这等同于 Object.create 的当前 ES6 实现。
- 之前的版本是什么(由于
new关键字不存在,它明显改变了)?原来的那个。这是一个关于Javascript历史的事实问题,可以回答,我不明白为什么前面被删除了,所以我澄清一下。 - 不带
new的定义是否等同于带@的定义? - 如果更改了,是否还有其他内容(由 Good Parts 作者或官方提供)?例如ES5,如果它不等同于 ES6。
【问题讨论】:
-
我不知何故对 Object.create 的另一个版本感到困惑,而且不记得函数是一个对象?
-
只是 FWIW,是的,函数一直是 JavaScript 中的对象,尤其是当您通过
new调用函数时,它们可以有一个prototype属性供使用。但也适用于Date.parse、String.fromCharCode等。
标签: javascript oop prototype