es6 class 用法
ES6中的class是用来声明一个类的语法糖,用于创建对象的模板。下面是一个基本的ES6 class的用法示例:
```javascript
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
speak() {
console.log(`${this.name} is speaking.`);
}
getInfo() {
console.log(`Name: ${this.name}, Age: ${this.age}`);
}
}
const animal1 = new Animal("Dog", 3);
animal1.speak(); // 输出:Dog is speaking.
Info(); // 输出:Name: Dog, Age: 3
```
在上面的示例中,我们定义了一个Animal类,它具有两个属性(name和age)和两个方法(speak和getInfo)。通过使用`new`关键字,我们可以创建Animal类的实例`animal1`,并调用其方法。
Class可以继承自其他Class,通过`extends`关键字实现继承。下面是一个继承的示例:
```javascript
class Dog extends Animal {
constructor(name, age, breed) {
super(name, age);
this.breed = breed;
}
speak() {
console.log(`The ${this.breed} dog named ${this.name} is barking.`);
}
}
const dog1 = new Dog("Buddy", 5, "Golden Retriever");
dog1.speak(); // 输出:The Golden Retriever dog named Buddy is barking.
Info(); // 输出:Name: Buddy, Age: 5奔驰s600 amg
```
哪个牌子的电动车好在上述示例中,Dog类继承自Animal类,并添加了额外的属性(breed)和重写了`speak()`方法。
除了构造函数constructor外,还可以使用的类方法有静态方法(static methods)和原型方
法(prototype methods)。静态方法是定义在类上的方法,而不是定义在类的实例上的方法。原型方法是定义在类的原型对象上的方法。
郑州日产帕拉骐```javascript
class MathUtil {
static add(a, b) {
return a + b;
}
static multiply(a, b) {
return a * b;
}特权车牌
divide(a, b) {
return a / b;
}
大众高尔夫1.4t}
console.log(MathUtil.add(2, 3)); // 输出:5
console.log(MathUtil.multiply(2, 3)); // 输出:6
const math = new MathUtil();
console.log(math.divide(6, 2)); // 输出:3
```
在上述示例中,`add()`和`multiply()`是定义在`MathUtil`类本身上的静态方法,可以直接通过类名调用。而`divide()`是定义在`MathUtil`类的原型上的方法,必须通过类的实例调用。
Class也支持getters和setters属性访问器的使用:
```javascript
class Person {
constructor(name, age) {
this._name = name;
this._age = age;
}
get name() {
return this._name;
}
set name(value) {
this._name = value;
}
get age() {
return this._age;
}
set age(value) {
if (value < 0) {
throw new Error("Age cannot be negative");
}
this._age = value;
}
}
const person = new Person("Bob", 25);
console.log(person.name); // 输出:Bob
console.log(person.age); // 输出:25
person.name = "Alice";
person.age = 30;
console.log(person.name); // 输出:Alice
m50console.log(person.age); // 输出:30
person.age = -5; // 抛出错误
```
在上述示例中,我们使用getters和setters来访问和修改类的私有属性。这样可以在读取和写入属性时执行额外的逻辑或校验。
这是ES6 class的基本用法,它提供了更清晰、简洁的方式来创建和组织对象的模板。
发布评论