面向对象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 为 true123456789101112function 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'});