关键字';类别';在Javascript中';在普通javascript代码中不显示
Javascript程序员通常不使用关键字“class” 我只是想知道为什么 下面的代码看起来很容易理解,也很容易使用“扩展”概念关键字';类别';在Javascript中';在普通javascript代码中不显示,javascript,Javascript,Javascript程序员通常不使用关键字“class” 我只是想知道为什么 下面的代码看起来很容易理解,也很容易使用“扩展”概念 class Animal { constructor(type){ this.type = type; } static isAnimal(obj, type){ if(!Animal.pr
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》(尤其是名为《代码>这和对象原型》的书)中更全面地阐述了这一主题
正如一位评论者所指出的,ES6确实有
class
关键字,但这只是对JS中现有机制的“修饰”。这不会改变JS将继续基于原型而不是基于类的事实。简而言之,Javascript是基于原型的,而不是基于类的。虽然有些机制可能看起来与其他编程语言的人相似,但在内部,链接对象的机制与链接类以创建继承、实例等的机制不同,就像在基于类的语言(如Python、Ruby、Java等)中一样
凯尔·辛普森(Kyle Simpson)在他的在线著作和他的OSS系列书《YDKJS》(尤其是名为《代码>这和对象原型》的书)中更全面地阐述了这一主题
正如一位评论者所指出的,ES6确实有
class
关键字,但这只是对JS中现有机制的“修饰”。这不会改变JS将继续基于原型而不是基于类的事实。有类声明。所以Bhojendra Ndepal,你是说旧版本的javascript(比ecam6旧)不支持类关键字?这里的问题到底是什么?我只想知道为什么大多数代码(比如google.com)都不支持类关键字不要正常使用class关键字,jfriend00。有类声明。那么Bhojendra Ndepal,你是说旧版本的javascript(比ecam6旧)不支持类关键字?这里的问题到底是什么?我只想知道为什么大多数代码(比如google.com)通常不使用类关键字jfriend00。这是很棒的链接。这是很棒的链接。