Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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可以被认为是基于类的语言吗?_Javascript_Oop_Ecmascript 6 - Fatal编程技术网

JavaScript可以被认为是基于类的语言吗?

JavaScript可以被认为是基于类的语言吗?,javascript,oop,ecmascript-6,Javascript,Oop,Ecmascript 6,在ES6之前,JavaScript无法创建类(我知道它有自己的创建类的方法,它们是构造函数……),而且它是一种基于原型的语言 现在,添加类声明和新的继承方式后,可以认为它是一种基于类的语言,如java和C++?< /p> < p> javascript是面向对象的语言,一直是.< /p> 新的ES6类语法只是提供了一种更漂亮的方式来声明一些您在ES6之前的语言中已经可以做的事情(您只需要手动配置一些现在已经为您完成的事情) 新的ES6类语法使用原型的方式与ES5和之前的对象完全相同。所以,在封面

在ES6之前,JavaScript无法创建类(我知道它有自己的创建类的方法,它们是构造函数……),而且它是一种基于原型的语言


现在,添加类声明和新的继承方式后,可以认为它是一种基于类的语言,如java和C++?< /p> < p> javascript是面向对象的语言,一直是.< /p> 新的ES6类语法只是提供了一种更漂亮的方式来声明一些您在ES6之前的语言中已经可以做的事情(您只需要手动配置一些现在已经为您完成的事情)

新的ES6类语法使用原型的方式与ES5和之前的对象完全相同。所以,在封面下真的没有什么新鲜事。ES6将大多数开发人员已经在做的事情(定义对象、继承其他对象定义等)编成实际的语言语法

因此,ES6类语法实际上只是让开发人员更方便。它不会从根本上改变Javascript的功能或工作方式

在ES6之前,javascript无法创建类(我知道它有自己的创建类的方法,它们是构造函数……),而且它是一种基于原型的语言

这种说法有点误导。ES6的工作原理与ES5相同。它仍然使用原型。
关键字中的对象定义的创建方式与ES5中的相同(使用原型)。我们现在有了一个内置语法,而不是手动声明构造函数,然后向原型添加方法。因此,在声明对象后,语法有了改进,但在工作方式上没有根本性的改变

现在,添加类声明和新继承方式后,可以认为是基于类的语言,如java和C++?< /p> 不是真的。它仍然是一种基于原型的语言,甚至

声明最终也只是构建了一个原型。我想说Javascript非常面向对象(一直都是)。我不想把它和java和C++进行比较,因为它有点像苹果和橘子。他们处理事情的方式不同,没有绝对衡量“更多”或“更少”的客观或有用的阶级基础


我建议你花点时间研究你所知道或正在考虑学习的不同语言的优缺点,这样你就能理解它们最适合用来做什么,而不要花任何时间试图找出哪种语言比另一种语言“更”或“更好”。它们是非常不同的,都可以用来做各种各样的事情。在工具包中,有些工具在某些方面比其他工具更好,这取决于它们各自的优势。

你是指面向对象的语言吗?这完全取决于“基于类”的含义。ES6类语法仍然使用原型继承创建对象。JavaScript已经是一种面向对象的语言,但不像其他语言那样基于类!Javascript不是也不能是基于类的语言。由于来自基于类的编程语言的人们的压力,类是语法上的糖。”…以及新的继承方式,例如?您已经回答了自己的问题:“ES6类语法仍然使用原型继承创建对象。”