Javascript定义类(class)的三种方法详解
1. ES6 Class
首先,“ES6 Class”是一种相对简单的定义类的方法,它采用了一种“类”的概念,并以“class”关键字来定义类。这种方法最常用,也是最简单的定义类的方式。
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayName() {
console.log(this.name);
}
sayAge() {
console.log(this.age);
}
}
const person = new Person('Bob', 20);
person.sayName();
person.sayAge();
这个例子定义了一个Person类,其中包含了一个构造函数以及两个方法。在类的最后,我们创建了Person类的一个实例。我们可以调用实例的方法来输出实例的属性值。
2. 立即调用类构造器
第二种定义类的方式是比较罕见的,但有时可能会用到——立即调用类构造器。
const Person = ((name, age) => {
return class {
constructor() {
this.name = name;
this.age = age;
}
sayName() {
console.log(this.name);
}
sayAge() {
console.log(this.age);
}
}
})('Bob', 20);
const person = new Person();
person.sayName();
person.sayAge();
这个例子中,我们用立即调用函数表达式(IIFE)来实现立即调用类构造器。相比第一种方法,这种方式看起来更加复杂。但是,它提供了一种将类变量设置为固定值的方式。
3. 通过函数构造类
第三种定义类的方法是通过函数来构造类。这种方式和ES6 Class很类似,但是换了一种语法。
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayName = function() {
console.log(this.name);
}
Person.prototype.sayAge = function() {
console.log(this.age);
}
const person = new Person('Bob', 20);
person.sayName();
person.sayAge();
这个例子定义了一个Person类,其中包含了一个构造函数以及两个方法。与ES6 Class不同的是,在使用原型继承时,函数构造的方法更为常见。
总结:三种方式中,ES6 Class方法比较简单易懂,也是比较推荐的。但是,在特殊场景下,使用其他两种方法的情况仍然比较常见,值得学习和掌握。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript定义类(class)的三种方法详解 - Python技术站