核心概念
对象编程中的四个核心概念,这些概念是Encapsulation(封装)、Abstraction(抽象)、Inheritance(继承)、Polymorphism(多态)
为了解决以往传统的编程方式造成的函数间依赖性太强的问题,面向对象应运而生
简述
在面向对象编程中,我们将一组相关的变量(name, age)和函数(displayInfo)组合成一个单元,我们称该单元为对象(Dog),我们将这些变量称为属性,将函数称为方法
例子
使用 ES6 类语法的
class Dog {
constructor(name, age) {
this.name = name;
this.age = age;
}
displayInfo() {
console.log(`${this.name} ${this.age}`);
}
}
const myDog = new Dog("Derrick", "10");
myDog.displayInfo(); // 输出: Derrick 10
封装
封装主要是将数据和方法包裹在对象内部,隐藏内部细节,只暴露必要接口。
在JS中,可以通过构造函数、类(ES6引入)、闭包等方式实现。私有属性的话,以前没有真正的私有,但ES6引入了#符号来定义私有字段,或者用闭包模拟。比如用IIFE创建私有变量,只能通过公共方法访问。
抽象
隐藏复杂逻辑,定义高层接口。
继承
子类复用父类的属性和方法,并可扩展新功能。 消除了冗余的代码
多态
面向对象中的多种形式