🔒 面向对象编程(OOP)

面向对象OOP(Object Oriented Programming)
特点:继承、封装、多态

面向对象

面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式。它将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。

名词解释

  • Class 类
    定义对象的特征。它是对象的Property属性和Method方法的模板.
  • Object 对象
    类的一个实例。
    对象是一个容器,封装了属性(property)和方法(method)。
    比如,我们可以把动物抽象为animal对象,使用“属性”记录具体是那一种动物,使用“方法”表示动物的某种行为(奔跑、捕猎、休息等等)。
  • Property 属性
    对象的特征,比如颜色。
  • Method 方法
    对象的能力,比如行走。
  • Constructor 构造函数
    对象初始化的瞬间, 被调用的方法. 通常它的名字与包含它的类一致.
  • Inheritance 继承
    一个类可以继承另一个类的特征。
  • Encapsulation 封装
    一种把数据和相关的方法绑定在一起使用的方法.
  • Abstraction 抽象
    结合复杂的继承,方法,属性的对象能够模拟现实的模型。
  • Polymorphism 多态
    多意为‘许多’,态意为‘形态’。不同类可以定义相同的方法或属性。

用new执行构造函数

new命令的作用,就是执行构造函数,返回一个实例对象。
下面的例子中,humanX 这个对象本身具有属性 name 和 city
humanX.proto 对应的共有属性(也就是原型)具有物种(species)、走(walk)和使用工具(useTools)这几个属性 humanX.proto.constructor === Human 为 true

1
2
3
4
5
6
7
8
9
10
11
12
function Human(options){ //构造函数建议开头大写
//自有属性
this.name = options.name;
this.city = options.city;
}
//共有属性(自带constructor属性和Object.prototype)
Human.prototype.species = '人族';
Human.prototype.walk = function(){};
Human.prototype.useTools: function(){}
var humanX = new Human({name:'stage', city: 'shanghai'});

-------------本文结束感谢您的阅读-------------