面向对象一

作者: Monee121 | 来源:发表于2018-04-08 23:33 被阅读0次

    面向对象基础(一)

    1. 什么是面向对象,面向对象的抽象概念

    使用对象时,只关注对象提供的功能,不关注其内部细节。如jquery

    1. 面向对象的思想
    2. JS中的面向对象、面向对象(OOP)的特点
    3. 抽象、封装、继承(封装、继承、多态)
      抽象:抓住核心问题
      封装:不考虑内部实现,只考虑功能使用
      继承:从已有对象,继承出新的对象
    4. 对象的组成:属性与方法
    <script>
    var arr=[1,2,3,4,5];
    
    var a=12;       //变量:自由
    arr.a=5;        //属性:属于一个对象
    
    function show() //函数,,自由的,谁都不属于
    {
        alert('a');
    }
    
    arr.fn=function ()  //方法
    {
        alert('a');
    };
    </script>
    
    1. 第一个面向对象的程序
    2. 面向对象中this的指向
    <script>
    var arr=[12, 65, 87];
    
    //this:当前的方法,属于谁
    
    arr.show=function ()
    {
        alert(this);
    };
    
    oDiv.onclick=function ()
    {
        alert(this);
    };
    </script>
    
    1. new Object() 对象、创建对象实例
    <script>
    var obj=new Object();
    
    obj.name='blue';
    obj.sex='男';
    
    obj.showName=function ()
    {
        alert('我的名字叫:'+this.name);
    };
    obj.showSex=function ()
    {
        alert('我是'+this.sex+'的');
    };
    
    var obj2=new Object();
    
    obj2.name='leo';
    obj2.sex='女';
    
    obj2.showName=function ()
    {
        alert('我的名字叫:'+this.name);
    };
    obj2.showSex=function ()
    {
        alert('我是'+this.sex+'的');
    };
    
    obj.showName();
    obj.showSex();
    obj2.showName();
    obj2.showSex();
    </script>
    
    1. 工厂方式、构造函数、工厂方式的问题
      函数:独立的,
      方法:属于一个对象的
      事件处理函数:处理事件的
      构造函数:构造对象的

    构造对象叫工厂方式,

    <script>
    //用工厂方式构造对象
    
    function createPerson(name, sex)    //构造函数
    {
        //1.原料
        var obj=new Object();
        
        //2.加工
        obj.name=name;
        obj.sex=sex;
        
        obj.showName=function ()
        {
            alert('我的名字叫:'+this.name);
        };
        obj.showSex=function ()
        {
            alert('我是'+this.sex+'的');
        };
        
        //3.出厂
        return obj;
    }
    
    var p1=createPerson('blue', '男');
    var p2=createPerson('leo', '女');
    
    alert(p1.showName==p2.showName);
    
    /*p1.showName();
    p1.showSex();
    p2.showName();
    p2.showSex();*/
    </script>
    

    工厂函数的问题:
    1.没有new
    2.每个对象都有自己的一套函数,浪费资源

    var a =function()
    var a =new function()
    var b=new functoin()
    a和b不相等
    

    相关文章

      网友评论

        本文标题:面向对象一

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