面向对象
什么是 面向对象
面向对象是一种编程思想,这种编程思想重点关注的是解决问题时参与的对象以及对象的行为,通过对象的行为互相写作完成最终问题的解决!
- 优点:扩展性好;缺点:稳定性较差
- 乐高积木:只需要关注每种类型的积木的外形、可以和那些积木拼接的行为
原生js中的面向对象:类和对象
// 1、原生JS
function Teacher (name) {
this.name = name
this.teach = function() {
console.log(`${this.name}正在教学中...`)
}
}
let tom = new Teacher("汤姆")
tom.teach()
ES6中的面向对象:类和对象
// 2、ES6语法升级,提供面向对象的语法
// 使用class声明一个类型:固定语法
class Student {
// 构造函数初始化成员属性: 固定语法
// 创建对象的时候会自动调用
constructor(name) {
this.name = name
}
// 声明普通函数:类型中称为方法
teach() {
console.log(`${this.name}正在教学中...`)
}
}
// 创建对象
let jerry = new Student("杰瑞")
jerry.teach()
ES6类型和对象操作基本语法
// 3.基本语法
// ① 无参数 创建对象的类型
class Person {
name = "tom"
age = 20
}
// 创建对象
// var tom = new Person()
// console.log(tom)
var jerry = new Person
console.log(jerry, "不带括号")
// ② 带参数的创建对象的类型
class Pet {
// 构造函数:初始化对象属性数据|成员属性
constructor(nickname, brand) {
this.nickname = nickname
this.brand = brand
}
// ③ 类型中包含方法:普通函数,函数出现在类内部称为方法
play() {
console.log(`${this.nickname} playing....`)
}
}
// 创建对象:创建对象时会自动调用类型中的constructor()构造函数完成属性赋值
var dog = new Pet("小白", "哈士奇")
console.log(dog)
面向过程
- 是一种解决问题的思路,重点关注解决问题的步骤和过程
- 优点:稳定性高;缺点:扩展性较差
- 华容道游戏:考虑最多的步骤、过程