请填写我所掌握的以下知识空白:
因此,对于ECMA5,Object.create()是创建对象的标准方法,因为传入的值是所创建对象的原型所指向的值
VS
使用'new‘构造函数,它将使创建的对象的原型指向构造对象的原型。同样,使用new运行函数中的构造函数代码。
现在,随着ECMA6和类的引入(我知道这只是语法上的糖),标准仍然使用Object.create()吗?我假设类只是函数构造函数的语法糖,或者等同于使用'new‘方法创建对象。
如果是这样的话,如果Object.create更有效,为什么像React这样的框架还要使用类?
发布于 2016-05-20 03:55:37
ES6类不是语法糖,对于ES5来说,它们被转换为传统的基于原型的构造,但在原生ES6支持中,它的工作效率要高得多。
我们在React中使用类来适应这种语法,因为在接下来的几年中,这将是完全支持的本机机制。
对于对象创建本身,现在可以使用Object.create和new。还包括对象字面量。关闭对象工厂的方法现在是“干净代码推荐”的方法之一-更好地控制耦合、本地(“私有”)变量和方法的好处之一。
发布于 2016-05-20 04:47:34
正如您所说,classes只是构造函数的语法糖。他们根本不会改变现状。有时你会想要使用new,有时你会想要使用Object.create,它们只是做不同的事情:
还使用new运行函数中的构造函数代码
React需要这样,所以他们使用构造函数。
https://stackoverflow.com/questions/37332750
复制相似问题