1. js是一门解释性的脚本语言,主要特点:弱类型、解释性、支持多范式开发。
      - 多范式开发:既可以面向过程,也可以面向对象。
      2. 面向过程 与 面向对象
      - 面向对象 和 面向过程是一种编程思想
    • 面向过程:将函数作为程序的基本单元,着重程序流程的开发。分析解决问题的步 骤,按步骤一步一步的实现。(c,js,pascal,vb)。

    • 面向对象:类和对象是程序的基本单元,函数不能独立存在,着重类和对象的开发。将事务分解为一个一个的对象,然后对象之间进行分工合作。
      (c++,java,objective-C)。

    • 比如:如何将大象装进冰箱
      - 面向过程:把冰箱门打开,把大象装进去,把冰箱门关上。
      - 面向对象:冰箱是一个对象,他的任务时开门,关门;大象是一个对象,他的任务是走进冰箱
      3. 面向对象的理解: 面向对象的编程方式使得每一个类都只做一件事。面向过程会让一个类越来越全能,就像一个管家一样做了所有的事。二面向对象是雇佣了一群职员,每个人做一件小事,各司其职,最终合作共赢。

    4. 面向对象的特性: 封装性,继承性,多态性。
    - 封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏
    - 继承:是指这样一种能力,他可以使现有类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展。通过继承创建的心累称为“子类”,被继承的类称为“父类”
    - 多态:本质是子类通过覆盖或重载父类的方法,使得对同一类对象同一方法的调用产生不同的结果。
    5. 面想对象的好处:
    《大话设计模式》中大鸟给小菜讲的故事非常经典:“话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是大宴众文武,在酒席间,曹操诗性大发,不觉吟道:‘喝酒唱歌,人生真爽……’众文武齐呼:‘丞相好诗!’于是一臣子速命印刷工匠刻版印刷,以便流传天下。”“样张出来给曹操一看,曹操感觉不妥,说道:‘喝与唱,此话过俗,应改为‘对酒当歌’较好!’于是此臣就命工匠重新来过。工匠眼看连夜刻版之工,彻底白费,心中叫苦不迭。只得照办。”“样张再次出来请曹操过目,曹操细细一品,觉得还是不好,说:‘人生真爽‘太过直接,应改问语才够意境,因此应改为‘对酒当歌,人生几何……’当臣子转告工匠之时,工匠晕倒……”大鸟:“小菜你说,这里面问题出在哪里?”小菜:“是不是因为三国时期活字印刷还未发明,所以要改字的时候,就必须要整个刻板全部重新刻。”大鸟:“说得好!如果是有了活字印刷,则只需更改四个字就可,其余工作都未白做。岂不妙哉。
    一、要改,只需更改要改之字,此为可维护
    二、这些字并非用完这次就无用,完全可以在后来的印刷中重复使用,此乃可复用
    三、此诗若要加字,只需另刻字加入即可,这是可扩展
    四、字的排列其实可能是竖排可能是横排,此时只需将活字移动就可做到满足排列需求,此是灵活性好
    而在活字印刷术出现之前,上面的四种特性都无法满足,要修改,必须重刻,要加字,必须重刻,要重新排列,必须重刻,印完这本书后,此版已无任何可再利用价值。”小菜:“是的,小时候我一直奇怪,为何火药、指南针、造纸术都是从无到有,从未知到发现的伟大发明,而活字印刷仅仅是从刻版印刷到活字印刷的一次技术上的进步,为何不是评印刷术为四大发明之一呢?原来活字印刷是思想的成功,面向对象的胜利。”
    6. js面向对象:ES6之前,js基于构造函数创建对象。
    ES6,js基于类(class)创建对象。