什么是对象

我们先来看高程三中是如何对对象进行定义的

"无序属性的集合,其属性可以包括基本值、对象或者函数",对象是一组没有特定顺序的的值。对象的没个属性或方法都有一个俄名字,每个名字都映射到一个值。

简单来理解对象就是由属性和方法来组成的

面向对象的特点

-封装

对于一些功能相同或者相似的代码,我们可以放到一个函数中去,多次用到此功能时,我们只需要调用即可,无需多次重写。

在这里我们可以理解为创造对象的几种模式:单例模式,工厂模式,构造函数模式,原型模式等。

  • 继承

    子类可以继承父类的属性和方法

  • 多态(重载和重写)

    1. 重载:严格意义上说js中没有重载的功能,不过我们可以通过判断函数的参数的不同来实现不同的功能来模拟重载。

    2. 重写:子类可以改写父类的属性和方法

javascript中的封装

  • 单例模式
    小王在一个小公司,就自己一个前端,所以他写js都是这样的

var a = 1;function getNum(){    return 1;
}

后来公司又招了个前端小明,于是变成他们2个一起写同一个js了。一天小王发现自己写的getNum方法出问题了,原来是小华写的js中也有个getNum的函数,代码合并后把他的覆盖掉了,于是便找小华理论去,经过一番妥协后,两人都把自己的代码改了改

var xiaoming = {
    num:1,
    getNum:function(){        return 1;
    }
}var xiaohua = {
    num:2,
    getNum: function(){        return 2;
    }
}

这就是我们