面向对象:程序之中所有的操作都需要通过对象来完成。
- 举例来说:
- 操作浏览器要使用window对象
- 操作网页要使用document对象
- 操作控制台要使用console对象
类(class)
要想面向对象,操作对象,首先便要拥有对象,那么下一个问题就是如何创建对象。
要创建对象,必须要先定义类,所谓的类可以理解为对象的模型,程序中可以根据类创建指定类型的对象
举例来说:可以通过Person类来创建人的对象,通过Dog类创建狗的对象,通过Car类来创建汽车的对象,不同的类可以用来创建不同的对象。
constructor 构造函数,构造函数会在对象创建时调用
-
定义类:
class 类名 { 属性名: 类型; constructor(参数: 类型){ this.属性名 = 参数; } 方法名(){ .... } }
-
示例:
class Person{ // 定义实例属性 name: string; age: number; // constructor 构造函数,构造函数会在对象创建时调用 constructor(name: string, age: number){ // this 表示当前的实例 this.name = name; this.age = age; } sayHello(){ console.log(`大家好,我是${ this.name}`); } }
-
使用类:
const p = new Person('孙悟空', 18); p.sayHello();
面向对象的特点
-
静态属性
-
静态属性(方法),也称为类属性。使用静态属性无需创建实例,通过类即可直接使用
-
静态属性(方法)使用static开头
-
示例:
class Tools{ static PI = 3.1415926; static sum(num1: number, num2: number){ return num1 + num2 } } console.log(Tools.PI); console.log(Tools.sum(123, 456));
-
-
this
- 在类中,使用this表示当前对象
继承
继承时面向对象中的又一个特性
使用继承后,子类会拥有父类所有的方法和属性。
通过继承可以将其他类中的属性和方法引入到当前类中,通过继承可以将多个类中的共有的代码写在一个父类中。
-
示例:
class Animal{ name: string; age: number; constructor(name: string, age: number){ this.name = name; this.age = age; } } class Dog extends Animal{ bark(){ console.log(`${