JS 面向对象

220 阅读1分钟

面向对象编程

什么是面向对象编程?

百度百科:面向对象程序设计(Object Oriented Programming,OOP)是一种计算机编程架构。OOP的一条基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。OOP=对象+类+继承+多态+消息,其中核心概念是类和对象

哔哩吧啦一顿,到头来没看懂

我认为面向对象就是把事物抽象成一个个对象,给对象们赋予他们自己的属性和方法。来以对象形式来执行。

打个比方: 两只小狗,红红和兰兰,吃饭

用面向对象的思想:抽离其中的事物:小狗,创建小狗类(或构造函数),将姓名属性赋予小狗,将吃饭方法赋予小狗, 创建名为红红和兰兰的小狗实例,执行它们自身的吃饭方法

变成代码:

// 类形式

class Dog {
  constructor(name) {
    this.name = name
    this.eat = function() {
      console.log(this.name + '吃饭');
    }
  }
}

let hong = new Dog('红红')

console.log(hong.eat())

// 构造函数形式

function Dog (name) {
  this.name = name
  this.eat = function() {
    console.log(this.name + '吃饭')
  }
}


let lanlan = new Dog('蓝蓝')

console.log(lanlan.eat())

ps: 其实类(class)是ECMAScript 中新的基础性语法糖结构,它背后使用的仍然是原型和构造函数的概念

接下来我们要研究的就是构造函数、原型、原型链