js的面向对象编程

面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统,交互式界面,应用结构,应用平台,分布式系统,网络管理结构,CAD技术,人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后到产物,是一种高级的编程思想。
 
    面向对象就是一种新的编程模式。
 
    面向过程?把所有的功能都写在一起,逐行实现
 
    面向对象在其它编程语言中普遍使用,Java,PHP,Python
    
    什么是对象?
    什么是收音机,对象是一个整体,对外提供一些操作。
    
    什么是面向对象开发?
    就是在使用对象时,只关注对象提供的功能,不关注其内部细节。
    比如,每次使用封装好的运动框架
 
     注意:面向对象是一种通用思想,并非只在程序中使用,任何事情都可以使用----公司老板分配任务
 
面向对象的特点
 
    封装:不考虑内部实现,只考虑功能实现
 
    继承:从已有对象上,继承出新对象
    
    多态:多种形态,一个功能的不同的应用场景
 
对象的组成
    方法(有归属)----函数(自由的)
 
    属性(有归属)----变量(自由的)
 
OOA和OOD
    OOA面向对象分析:
        人类起源:单细胞----人,进化过程中,增加了各种器官,各个器官之间分工协作
        为什么统治世界的是人类?-----精密的分工协作
 
        大规模分工,精密协作
 
    面向对象分析:将大问题拆分成小问题,并试图用分工协作来完成的思维方式。
 
 
    OOD面向对象设计:
        1.分析模块后,确定职责
            大哥招小弟--端茶倒水,点烟捶背捏脚
 
        2.确定耦合关系
            确定通信关系,如何交流,暗号
            弊端:当耦合达到一定程度时,如果换了一个助理,需要重新耦合,资源消耗太大
 
            高内聚低耦合
 
        3.为OOP做准备
 
对象如何被发明的?
        大量信息的处理和加工困难,打包之后,将内容包含在其中。信息传递速度更快,效率更高
        
    面向对象和面向过程的区别
        面向对象--先实现功能,再运行。分工协作,同时发生,解决问题。
        面向过程--一边实现,一边运行。效率低下。
    
    面向对象并不是程序员发明的。在程序中我们叫面向对象(OO),在生活中叫分工协作。
 
当我们需要一套可以反复经过使用的,经过分类,代码设计经验的总结时,就用到了设计模式。
 设计模式:
        工厂模式:原料、加工、出厂
    function createPeople(name,age,like){
            var obj = new Object();          //原料
            obj.name = name;               //加工
            obj.age = age;
            obj.like = like;
            obj.show = function(){
                alert("我叫"+this.name+",今年"+this.age+"岁,喜欢"+this.like)
            };
            return obj;                     //出厂
        }
        var obj = createPeople("AAA",23,"LOL");
        var obj2 = createPeople("BBB",30,"JAVA");
 
        obj.show();
        obj2.show();
    但是这种工厂模式已经被JS抛弃,
 
因为JS内置了一种的工厂模式
    function CreatPeople(name,age,like){
            this.name = name;
            this.age = age;
            this.like = like;
            this.show = function(){
                alert("我叫"+this.name+",今年"+this.age+"岁,喜欢"+this.like);
            }
        }
        var obj = new CreatPeople("ABC",20,"PHP");
        var obj2 = new CreatPeople("QWE",32,"Python");
        obj.show();
        obj2.show();
    JS内置的工厂模式比传统的工厂模式更高效,复用性更强。
 
    JS内置的工厂模式叫构造函数。
 
使用Json创建对象
    var obj = {
        name:"admin",
        age:23,
        like:"LOL",
        show:function(){
            alert("我叫"+this.name+",今年"+this.age+"岁,喜欢"+this.like)
        }
    }
    obj.show()
 
  function CreatPeople(name,age,like){
            this.name = name;
            this.age = age;
            this.like = like;
            this.show = function(){
                alert("我叫"+this.name+",今年"+this.age+"岁,喜欢"+this.like);
            }
        }
        var obj = new CreatPeople("ABC",20,"PHP");
        var obj2 = new CreatPeople("QWE",32,"Python");
        obj.show();
 
        obj2.show();
原文地址:https://www.cnblogs.com/gzy1/p/11880456.html