Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Object.create的原始定义是什么?_Javascript_Oop_Prototype - Fatal编程技术网

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

Javascript Object.create的原始定义是什么?,javascript,oop,prototype,Javascript,Oop,Prototype,我假设这相当于Object.create的当前ES6实现 以前的版本是什么(由于new关键字不存在,所以明显发生了变化)?原来的那个。这是一个关于Javascript历史的事实问题,可以回答,我不明白为什么之前的被删除,所以我要澄清一下 没有新定义的定义是否等同于有新定义的定义 如果它改变了,是否还有其他的(由好的部分作者或官方)?e、 g.ES5,如果不等同于ES6 以前的版本是什么(因为新关键字不存在,所以它明显改变了) 没有新建一直存在于JavaScript中 没有新定义的定义是否等同

我假设这相当于Object.create的当前ES6实现

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

没有<代码>新建一直存在于JavaScript中

没有新定义的定义是否等同于有新定义的定义

在ES5的标准库中添加
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(); 
}