js高级第一次课--理解对象

2019-05-23  本文已影响0人  璐璐熙可

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()

但假设我们定义一个函数

function sum(a, b){
    return a + b
}

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

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

OOP(Object-oriented programming, 面向对象编程)

面向对象的思路在我们生活中实际上很普遍。以开车为例,开车时司机拧钥匙、挂挡、踩油门,车开始启动

面向过程的写法

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

面向对象的思路:一次性实现所有的流程

面向对象的写法

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

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

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

Car1.拧钥匙()
Car1.挂挡()
Car1.踩油门() 
Car2.拧钥匙()
Car2.挂挡()
Car2.踩油门()
上一篇下一篇

猜你喜欢

热点阅读