Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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代码中不显示_Javascript - Fatal编程技术网

关键字';类别';在Javascript中';在普通javascript代码中不显示

关键字';类别';在Javascript中';在普通javascript代码中不显示,javascript,Javascript,Javascript程序员通常不使用关键字“class” 我只是想知道为什么 下面的代码看起来很容易理解,也很容易使用“扩展”概念 class Animal { constructor(type){ this.type = type; } static isAnimal(obj, type){ if(!Animal.pr

Javascript程序员通常不使用关键字“class”

我只是想知道为什么

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

 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();

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

凯尔·辛普森(Kyle Simpson)在他的在线著作和他的OSS系列书《YDKJS》(尤其是名为《代码>这和对象原型》的书)中更全面地阐述了这一主题

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


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

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

凯尔·辛普森(Kyle Simpson)在他的在线著作和他的OSS系列书《YDKJS》(尤其是名为《代码>这和对象原型》的书)中更全面地阐述了这一主题

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


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

有类声明。所以Bhojendra Ndepal,你是说旧版本的javascript(比ecam6旧)不支持类关键字?这里的问题到底是什么?我只想知道为什么大多数代码(比如google.com)都不支持类关键字不要正常使用class关键字,jfriend00。有类声明。那么Bhojendra Ndepal,你是说旧版本的javascript(比ecam6旧)不支持类关键字?这里的问题到底是什么?我只想知道为什么大多数代码(比如google.com)通常不使用类关键字jfriend00。这是很棒的链接。这是很棒的链接。