JavaScript类和继承是面向对象编程的主要概念之一。构造函数是类的重要组成部分之一,通过构造函数我们可以创建新的实例,同时constructor属性则是描述类的属性之一。以下是完整攻略:
一、JS类的创建
JS 类的创建可以使用ES5和ES6进行定义。 在ES5 中,使用构造函数和原型算法来定义类,而在ES6 中,使用class和constructor来定义类。 这里我们主要讲述ES6。
class Dog {
constructor(name, height, weight) { // constructor是类中的特殊方法,用于创建和初始化一个对象
this.name = name;
this.height = height;
this.weight = weight;
}
bark() { // 在类中定义函数,称为类的方法
console.log('Woof woof!');
}
showInfo() {
console.log(`Name: ${this.name}, Height: ${this.height}, Weight: ${this.weight}`);
}
}
let myDog = new Dog('Buddy', 45, 25); // 通过使用 new 关键字,可以创建一个类的实例
myDog.showInfo(); // 输出:Name: Buddy, Height: 45, Weight: 25
myDog.bark(); // 输出:Woof woof!
二、JS类的继承
JS 支持面向对象编程中的继承。类可以通过继承拓展其他类的属性和方法。 父类的方法可以被子类继承。
class Animal {
constructor(species, color, sound) {
this.species = species;
this.color = color;
this.sound = sound;
}
makeSound() {
console.log(this.sound); // 发出声音
}
}
class Cat extends Animal {
constructor(name, species, color, sound) {
super(species, color, sound); // super() 呼叫父类构造函数,将name,另一项特性,传递给父类
this.name = name;
}
sayMyName() {
console.log(`Hello, my name is ${this.name}`); // 输出名字
}
}
let myCat = new Cat('Lucy', 'cat', 'white', 'meow'); // 通过使用 new 关键字,可以创建一个子类的实例
myCat.sayMyName(); // 输出:Hello, my name is Lucy
myCat.makeSound(); // 输出:meow
在上面的代码块中,我们创建了两个类, Animal和Cat。 Animal是父类,而Cat是Animal的子类。在Cat类中,我们使用了ES6的关键字extends,表明了Cat是Animal的子类,而super方法会调用父类的构造方法。这里我们使用super(...)来初始化父类中定义好的species, color和sound 属性,并初始化其子类中新增的属性name。同时,子类中的方法sayMyName()和makeSound()可以直接使用超类中的方法 makeSound()。
至此,我们介绍了ES6的类和继承机制,希望可以对你实现一些更高级的JavaScript应用程序带来帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript类和继承 constructor属性 - Python技术站