Javascript Object.create的原始定义是什么?
我假设这相当于Object.create的当前ES6实现Javascript Object.create的原始定义是什么?,javascript,oop,prototype,Javascript,Oop,Prototype,我假设这相当于Object.create的当前ES6实现 以前的版本是什么(由于new关键字不存在,所以明显发生了变化)?原来的那个。这是一个关于Javascript历史的事实问题,可以回答,我不明白为什么之前的被删除,所以我要澄清一下 没有新定义的定义是否等同于有新定义的定义 如果它改变了,是否还有其他的(由好的部分作者或官方)?e、 g.ES5,如果不等同于ES6 以前的版本是什么(因为新关键字不存在,所以它明显改变了) 没有新建一直存在于JavaScript中 没有新定义的定义是否等同
- 以前的版本是什么(由于
关键字不存在,所以明显发生了变化)?原来的那个。这是一个关于Javascript历史的事实问题,可以回答,我不明白为什么之前的被删除,所以我要澄清一下new
- 没有新定义的定义是否等同于有新定义的定义
- 如果它改变了,是否还有其他的(由好的部分作者或官方)?e、 g.ES5,如果不等同于ES6
Object.create
之前,没有任何版本没有new
。直接使用给定的原型创建对象,而不必通过构造函数调用,但结果相同,只是没有创建不必要的构造函数
如果它改变了,是否还有其他的(由好的部分作者或官方)?e、 g.ES5,如果不等同于ES6
它没有改变。标准版本是在ES5(不是ES2015/ES6)中添加的,自那时起没有实质性更改。(规范的文本发生了变化,因为从那时起规范作为一个整体发生了相当大的变化,但所采取的基本步骤和结果都是一样的。)我不知怎么搞不清Object.create还有另一个版本,加上没有回忆起函数是对象吗?只是FWIW,是的,函数一直是JavaScript中的对象,不仅如此,当您通过
new
调用函数时,他们还可以使用prototype
属性。但也适用于Date.parse
,String.fromCharCode
等。
function Object.create(o) {
function F() {}
F.prototype = o;
return new F();
}