美文网首页
面向对象

面向对象

作者: lucky_yao | 来源:发表于2020-10-19 07:34 被阅读0次

    1:什么是对象obj?

    对象是有若干个键值对组成的,他是一种数据集合。

    2:对象的创建方式:

    2.1:字面量创建

    var o={};

    2.2: 关键字创建

    var o=new Object();

    3:对象的写法格式和注意点:

    格式1:

    var o={

    name:'老栗',

    age:18,

    job:'student',

    fun:function(){

    alert(this.name+this.age+this.job)

    }

    格式2:

    var o=new Object();

    o.name='老栗';

    o.age=18;

    o.job='student';

    o.fun=function(){

    alert(this.name+this.age+this.job)

    }

    注意:冒号前叫键,冒号后叫值,通过键去找值。

    4:什么是面向对象?

    我们以前写代码的过程叫,面向过程的写法,现在我们要学习面向对象的写法。

    我们学习完,面向对象以后,会按照面向对象的写法,写这个案例。

    面向对象是一种思想(oop)。

    5:面向对象的特点:

    5.1:封装
    
    5.2:多态
    
    5.3:抽象
    
    5.4:继承
    
    #我们学习完面向对象的特点以后,会按照面向对象的思想指导去写我们的demo案例。
    
    #我们到到位以后重要的,常用的框架或者一些重要的库,里面的地产架构都有面向对象在里面。
    

    6:面向对象要学习的知识点:

        6.1工厂模式的写法:
    
            6.1.1:为什么学习工厂模式?
    
                工厂模式解决了,多个相同对象代码冗余的问题。
    
                工厂可以提高我们的工作效率,减少代码量。
    
            6.1.2:工厂模式写法步骤:
    
                1:创建一个函数
    
                2:函数里面创建一个对象
    
                3:把函数的形参赋值给对象的属性
    
                4:返回对象
    
                5:把函数赋值给一个变量,调用对象方法
    
            6.1.3:工厂模式写法缺点:
    
                不能识别对象实例化。
    

    7:构造函数模式的写法:

        7.1:构造函数解决了不能识别对象实例化的问题。
    
        7.2:构造函数里的this是指向构造函数的。
    
        7.3:new Crea()这个函数就变成了对象类型。
    
        7.4:构造函数名首字母应该大写。
    
        举例:
    
            function Crea(name,age){
    
                this.a=name;
    
                this.b=age;
    
                this.f=function(){
    
                    alert(this.a+this.b);
    
                    alert(this)//[object Object]
    
                }
    
    }
    
    var t1=new Crea('tom',12)
    
    var t2=new Crea('jicak',123)
    

    8:instanceof 是判断变量是否是这个对象的实例化对象。(判断这个变量是否和这个对象是同源的)

    9:实例化和类,对象的概念

    function a(){
    
    }
    
    var o=new a();
    
    对象:函数被关键字 new 以后就变成了实例化对象
    
    类:函数被关键字new完以后这个整体(new a())被称之为类
    
    类的作用就是一个模具,通过这个模具可以复制很多对象。
    
    实例化:函数被关键字 new完以后,赋值给一个变量的过程叫实例化对象  var o=new a();
    
    变量被实例化后,就拥有了函数对象里面的属性和方法。
    

    10:什么是原型对象?

        1:prototype翻译过来叫原型,他本身的类型是对象。本的中文和类型加起来简称==原型对象
    
        2:原型对象它存在实例对象和函数中。
    

    11:原型对象的作用:

        就是可以共享属性和方法。
    

    12:实例对象 函数 原型对象之间的关系?

        函数通过关键new赋值给一个变量,这个变量就变成了实例对象。(说白了实例对象是函数new出来的)
    
        函数通过原型prototype生成原型对象(原型对象也是从函数出来的)
    
        原型对象通过constructor可以找到函数
    
        实例对象通过__proto__可以找到原型对象
    

    13:prototype proto constructor的作用?

        prototype是对象类型,存储函数当中,作用是共享属性和方法
    
        __proto__是存储实例对象中,作用:实例对象同__proto__可以获取原型对象的属性和方法。
    
        constructor是原型对象下面的属性,作用:指向了函数
    

    14:写面向对象的步骤

    把面向过程的js代码改写成面向对象思维js代码
    
    * 1:不能有函数的嵌套 ,如果有把嵌套的函数全部提出来
    
    * 2:可以有全局变量
    
    * 3:把onload改成构造函数
    
    * 4:把全局变量变成属性
    
    * 5:把函数变成方法(在这里指的是Tab)
    
    * 6:不能把获取属性的值写死
    
    * 7:改错
    

    15:删除属性的唯一方法是使用 delete 操作符;设置属性为 undefined 或者 null 并不能真 正的删除属性, 而仅仅是移除了属性和值的关联。

    16: hasOwnProperty()方法和 in 操作符的用法

    hasOwnProperty() 方法用来判断某个对象是否含有指定的自身属性

    相关文章

      网友评论

          本文标题:面向对象

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