JavaScript ECMAScript 5中的类?
我想知道JavaScript ECMAScript 5中是否有类?我读了一些文献,对此有不同的看法。我知道可以模拟类,但我不确定它们是否被称为类。你可能也有一些证据吗 这些类仅仅是伪类还是正确的术语?“是许多事物的术语。您正在寻找的是一个概念,并且肯定在JavaScript中使用。我们通过具体化来实现这个概念,这在强大的、面向对象的Java脚本中很容易实现。此模型与其他编程语言中使用的对象模型大不相同,在其他编程语言中,类更多地是编译器工件,而不是具体对象 这个概念是通过通用语言特性实现的,这允许多个稍微不同的实现(其中一些甚至不依赖于原型)。所以当使用“类”这个术语时,我们不知道它到底是什么样子。只有当我们引用带有实现的特定类时,才清楚结构的含义(假设您熟悉实现的类型)。JavaScript ECMAScript 5中的类?,javascript,class,ecmascript-5,Javascript,Class,Ecmascript 5,我想知道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类是返回指向其激活记录的指针的过程。