美文网首页
深入理解js中的面向对象与原型、原型链(一)

深入理解js中的面向对象与原型、原型链(一)

作者: 缺月楼 | 来源:发表于2019-05-28 00:27 被阅读0次

1、对象是什么?

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

每一个对象都是功能中心,具有明确分工,可以完成接受信息、处理数据、发出信息等任务。对象可以复用,通过继承机制还可以定制。因此,面向对象编程具有灵活、代码可复用、高度模块化等特点,容易维护和开发,比起由一系列函数或指令组成的传统的过程式编程(procedural programming),更适合多人合作的大型软件项目。

那么,“对象”(object)到底是什么?我们从两个层次来理解。

(1)对象是单个实物的抽象。

一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。

(2)对象是一个容器,封装了属性(property)和方法(method)。

属性是对象的状态,方法是对象的行为(完成某种任务)。比如,我们可以把动物抽象为animal对象,使用“属性”记录具体是那一种动物,使用“方法”表示动物的某种行为(奔跑、捕猎、休息等等)。
上面这一段是大佬阮老师对面向对象的描述,不理解的同学可以看一下我下面举得简单的例子:
面向对象的思路在我们生活中实际上很普遍。以开车为例,开车时司机拧钥匙、挂挡、踩油门,车开始启动

面向过程的写法

拧钥匙()
联通电路()
火花塞点火()
活塞运动()
内燃机启动() 
司机挂挡()
变速箱工作()
踩油门()
活塞运动加快()
刹车解除()
连杆传输动力到轮子()
轮子运转()

看起來,步骤很繁琐,很复杂!

而面向对象的思路:一次性实现所有的流程
你可以这样操作:

Car.拧钥匙()
Car.挂挡()
Car.踩油门()

是不是简单了很多,
面向对象的思路:把某个功能看成一个整体(对象),通过调用对象的某个方法来启动功能。在用的时候不去考虑这个对象内部的实现细节,在去实现这个对象细节的时候不用管谁在调用

面向对象的写法不仅更简洁,而且更可控。假设有两个车要启动,用面向过程的写法代码无法维护,而面向对象只需要:

Car1.拧钥匙()
Car1.挂挡()
Car1.踩油门() 
Car2.拧钥匙()
Car2.挂挡()
Car2.踩油门()

这样写真的便于维护,各个功能之间互不干扰,降低耦合!

JS 中的对象

js对象是一系列key:value的几何 例:

var obj = { a: 1, b: 2}
var person = {
    name: 'hunger',
    sayName: function(){
        console.log('My name is hunger')
    }
}

我们可以通过对象.属性来获取对应属性的值!

console.log(person.name)
person.sayName()

但假设我们定义一个函数

    return a + b
}

console.log(sum.name)   // => sum
console.log(sum.length)  //2

会发现,函数 sum也有很多属性。
从这个角度看,函数也是js对象的一种。
未完待续..........

本文参考 : 阮一峰 饥人谷若愚

相关文章

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • 在nodejs中面向对象:Bearcat

    JS中的面向对象 最最最开始,我们先来说说JS中的面向对象。 原型链 参考文章:图解Javascript原型链 J...

  • 1.web前端基础储备之—js的面向对象风格以及原型和原型链

    javascript是面向对象风格,基于原型的语言。 目标:了解js面向对象和原型原型链的关系 面向对象(OOP)...

  • js原型链--js面向对象编程

    简单粗暴地理解js原型链--js面向对象编程 原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢...

  • JS汇总---面向对象&数组

    面向对象 js原型链的继承 静态属性怎么继承 js原型链以及特点 面向对象有哪几个特点 封装,继承,多态 对象的继...

  • JavaScript 原型链

    前言 JS是一门面向对象的语言,在js有一种说法,万物皆对象。本文将带领大家深入了解JS对象的原型及原型链。PS:...

  • Js面向对象

    一、Js面向对象 二、Js原型及原型链 1、原型 JavaScript 的每个对象都继承另一个父级对象,父级对象称...

  • 深入理解js中的面向对象与原型、原型链(一)

    1、对象是什么? 面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流...

  • JS原型理解

    原型链是整个JS面向对象的基础在理解原型链之前先来谈谈JS创建对象的几种方式 可以看到输出了4个对象,a1和a2看...

  • JavaScript原型链

    js原型链 原型链是JS面向对象的基础非常重要 所有对象只有__proto__属性,而函数具有prototype属...

网友评论

      本文标题:深入理解js中的面向对象与原型、原型链(一)

      本文链接:https://www.haomeiwen.com/subject/tajltctx.html