JavaScript中类的定义及其方式
什么是类
类是面向对象编程中的基本概念之一,它是一个抽象的概念,用来描述一个共性的概念或一些具有相同属性和方法的对象的集合。
在ES6之前,JavaScript中并没有类的概念,但是通过函数和构造函数的方式,可以模拟出类的定义和使用。
定义类的方式
1. 使用函数
通过创建一个函数,来模拟出一个类,然后可以使用new关键字来实例化一个对象。
function Cat(name, color) {
this.name = name;
this.color = color;
}
Cat.prototype.meow = function() {
console.log(this.name + ' says meow...');
}
const cat1 = new Cat('Mimi', 'black');
const cat2 = new Cat('Kitty', 'white');
cat1.meow(); // Mimi says meow...
cat2.meow(); // Kitty says meow...
在上面的例子中,我们定义了一个Cat
函数,它的作用是创建一个猫的实例。该函数接受两个参数,分别是猫的名字和颜色。
我们通过给Cat
的原型对象prototype
添加一个meow
方法,来为猫添加一个通用的叫声。然后通过new
关键字来实例化两只猫,分别为cat1
和cat2
。
2. 使用class关键字
在ES6中,引入了class
关键字,用来定义类。使用class
关键字来定义类的方式和其他面向对象语言相似。
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
eat() {
console.log(`${this.name} is eating.`);
}
}
class Cat extends Animal {
constructor(name, age, color) {
super(name, age);
this.color = color;
}
meow() {
console.log(`${this.name} says meow...`);
}
}
const cat1 = new Cat('Mimi', 2, 'black');
const cat2 = new Cat('Kitty', 1, 'white');
cat1.eat(); // Mimi is eating.
cat1.meow(); // Mimi says meow...
cat2.eat(); // Kitty is eating.
cat2.meow(); // Kitty says meow...
在上面的例子中,我们定义了一个Animal
类,它有一个构造函数constructor
,用来初始化动物的名字和年龄。Animal
类还有一个eat
的原型方法,用来表示动物吃东西的行为。
通过class
关键字定义的子类Cat
,通过extends
关键字来继承父类Animal
。在子类中,有一个自己的构造函数constructor
,它通过super
关键字来调用父类的构造函数,并且在其中初始化猫的颜色。Cat
类还有一个meow
方法,用来表示猫的叫声。
然后通过new
关键字来实例化两只猫,分别是cat1
和cat2
。
总结
JavaScript中通过创建函数和原型对象,或者使用ES6的class关键字来定义类。在类中可以封装属性和方法,然后通过new
关键字来实例化对象,并且可以使用类中的方法来操作对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript中类的定义及其方式(《javascript高级程序设计》学习笔记) - Python技术站