Javascript中的关键字“ class”没有出现在普通的javascript代码中

珍妮·宋

Javascript程序员通常不会使用关键字“类”。

我只想知道为什么。

下面的代码看起来很容易理解和易于使用的“扩展”概念

 class Animal {
                constructor(type){
                    this.type = type;
                }
                static isAnimal(obj, type){
                    if(!Animal.prototype.isPrototypeOf(obj)){
                        return false;
                    }
                    return type ? obj.type === type : true;
                }
            }

            class Dog extends Animal {
                constructor(name, breed){
                    super("dog");
                    this.name = name;
                    this.breed = breed;
                }
                bark(){
                    alert("ruff, ruff");
                }
                print(){
                    alert("The dog " + this.name + " is a " + this.breed);
                }
                static isDog(obj){
                    return Animal.isAnimal(obj, "dog");
                }
            }

            var sparkie = new Dog("Sparkie", "Border Collie");
            sparkie.bark();
88a

简而言之,Javascript是基于原型的,而不是基于类的。尽管某些机制可能看起来与其他编程语言的机制相似,但在内部,链接对象的机制与链接类以创建继承,实例等的机制不同,就像在基于类的语言(如Python,Ruby)中一样,Java等

凯尔·辛普森(Kyle Simpson)在其在线著作和他的OSS系列图书YDKJS(尤其是标题为的书this and Object Prototypes)中更加全面地论述了这一主题

引用JS面向对象样式的实现只是几种不同的模式,用于近似其他语言中的基于类的机制。您可能会在“狂野”中遇到几种不同的Java OO模式。这里概述了其中的七个:

正如评论者中提到的那样,ES6确实有class关键字,但这只是对JS中现有机制的“修饰”。不会改变JS将继续基于原型而不是基于类的事实。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript const关键字

来自分类Dev

Dart中的“ with”关键字

来自分类Dev

Javascript中“ new”关键字的限制

来自分类Dev

使用关键字从数组中拆分Javascript-String

来自分类Dev

仍然对JavaScript中的“ this”关键字感到困惑

来自分类Dev

关于Javascript中的“ this”关键字的困惑

来自分类Dev

关键字中的JavaScript对象冒号

来自分类Dev

JavaScript`of`关键字(for ... of循环)

来自分类Dev

OCaml中的“ as”关键字

来自分类Dev

javascript中的_super和_super_关键字?

来自分类Dev

子功能中的Javascript新关键字

来自分类Dev

“类型”是JavaScript中的关键字吗?

来自分类Dev

理解JavaScript中的类关键字

来自分类Dev

如何在Javascript中定义关键字?

来自分类Dev

在Javascript中,保留关键字“ short”有什么作用?

来自分类Dev

javascript作为关键字,在导入中“ as”之后的多个名称

来自分类Dev

使用关键字从数组中拆分Javascript-String

来自分类Dev

Java是JavaScript中的保留关键字吗?

来自分类Dev

关于Javascript中的'this'关键字的困惑

来自分类Dev

return关键字在javascript中的意义

来自分类Dev

在提取的文本javascript中搜索关键字

来自分类Dev

如何避免Javascript中的this和new关键字?

来自分类Dev

Javascript中的面向对象的关键字

来自分类Dev

javascript中const关键字的用法

来自分类Dev

javascript setter、getter 方法中缺少“this”关键字

来自分类Dev

JavaScript 使用 (this) 关键字

来自分类Dev

使用javascript中的关键字过滤表格

来自分类Dev

使用javascript替换文本中的关键字

来自分类Dev

Javascript继承链中的'this'关键字