Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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 ECMAScript 5中的类?_Javascript_Class_Ecmascript 5 - Fatal编程技术网

JavaScript ECMAScript 5中的类?

JavaScript ECMAScript 5中的类?,javascript,class,ecmascript-5,Javascript,Class,Ecmascript 5,我想知道JavaScript ECMAScript 5中是否有类?我读了一些文献,对此有不同的看法。我知道可以模拟类,但我不确定它们是否被称为类。你可能也有一些证据吗 这些类仅仅是伪类还是正确的术语?“是许多事物的术语。您正在寻找的是一个概念,并且肯定在JavaScript中使用。我们通过具体化来实现这个概念,这在强大的、面向对象的Java脚本中很容易实现。此模型与其他编程语言中使用的对象模型大不相同,在其他编程语言中,类更多地是编译器工件,而不是具体对象 这个概念是通过通用语言特性实现的,这允

我想知道JavaScript ECMAScript 5中是否有类?我读了一些文献,对此有不同的看法。我知道可以模拟类,但我不确定它们是否被称为类。你可能也有一些证据吗

这些类仅仅是伪类还是正确的术语?

“是许多事物的术语。您正在寻找的是一个概念,并且肯定在JavaScript中使用。我们通过具体化来实现这个概念,这在强大的、面向对象的Java脚本中很容易实现。此模型与其他编程语言中使用的对象模型大不相同,在其他编程语言中,类更多地是编译器工件,而不是具体对象

这个概念是通过通用语言特性实现的,这允许多个稍微不同的实现(其中一些甚至不依赖于原型)。所以当使用“类”这个术语时,我们不知道它到底是什么样子。只有当我们引用带有实现的特定类时,才清楚结构的含义(假设您熟悉实现的类型)。
然而,有一个相当标准的模式(实现),它有一个构造函数,通过
new
调用该构造函数来创建实例,还有一个原型对象用于共享方法。该模式还定义了如何设置继承和子类化

您是对的,ES5中没有语法的
结构(尽管关键字是保留的,并且在ES6中由标准结构实现)。

“是许多事物的术语。您正在寻找的是一个概念,并且肯定在JavaScript中使用。我们通过具体化来实现这个概念,这在强大的、面向对象的Java脚本中很容易实现。此模型与其他编程语言中使用的对象模型大不相同,在其他编程语言中,类更多地是编译器工件,而不是具体对象

这个概念是通过通用语言特性实现的,这允许多个稍微不同的实现(其中一些甚至不依赖于原型)。所以当使用“类”这个术语时,我们不知道它到底是什么样子。只有当我们引用带有实现的特定类时,才清楚结构的含义(假设您熟悉实现的类型)。
然而,有一个相当标准的模式(实现),它有一个构造函数,通过
new
调用该构造函数来创建实例,还有一个原型对象用于共享方法。该模式还定义了如何设置继承和子类化


您是对的,ES5中没有语法的
结构(尽管关键字是保留的,并在ES6中通过标准结构实现)。

JavaScript/ECMAScript是一种编程语言

维基百科对此的定义是:

基于原型的编程是一种面向对象编程,其中行为重用(称为继承)是通过克隆作为原型的现有对象的过程来执行的。此模型也可以称为原型、面向原型、无类或基于实例的编程

好吧,知道这是你的决定,是否叫他们班

但是JS世界中的一些人将它们称为类,使用ECMAScript 6将有一个关键字来创建这样的原型,称为
class
。(这意味着这些原型应该称为类。)


因为您正在写一篇论文,所以您可以对类进行定义(有一些),提到您使用的是什么,以及它是否适用于JavaScript。(如果这是属于你的工作的话。)

约翰·C·米切尔(John C.Mitchell)的一本好书也总结了一些关于阶级的定义。(约翰·米切尔:《编程语言中的概念》,剑桥大学出版社,2003年)

关于Simula的课程,他写道:(第326页)

类:Simula类是返回指向其激活记录的指针的过程。类的主体可以初始化它创建的对象

他在Smalltalk课堂上写道:(第327页)

类:Smalltalk类定义类的所有对象共享的类变量、类方法和实例方法。在运行时,类数据结构包含指向实例变量temple、方法字典和超类的指针

<>他还指出java和C++中的类概念与Simultalk中的概念非常相似,SimultAuto.
我们可以看到,类的定义可以不同,但上面的两个定义似乎与JavaScript原型不太匹配。

JavaScript/ECMAScript是一种编程语言

维基百科对此的定义是:

基于原型的编程是一种面向对象编程,其中行为重用(称为继承)是通过克隆作为原型的现有对象的过程来执行的。此模型也可以称为原型、面向原型、无类或基于实例的编程

好吧,知道这是你的决定,是否叫他们班

但是JS世界中的一些人将它们称为类,使用ECMAScript 6将有一个关键字来创建这样的原型,称为
class
。(这意味着这些原型应该称为类。)


因为您正在写一篇论文,所以您可以对类进行定义(有一些),提到您使用的是什么,以及它是否适用于JavaScript。(如果这是属于你的工作的话。)

约翰·C·米切尔(John C.Mitchell)的一本好书也总结了一些关于阶级的定义。(约翰·米切尔:《编程语言中的概念》,剑桥大学出版社,2003年)

关于Simula的课程,他写道:(第326页)

类:Simula类是返回指向其激活记录的指针的过程。