美文网首页
JS面向对象

JS面向对象

作者: JessWang | 来源:发表于2018-07-09 19:00 被阅读7次

    1. 面向对象

    PHP里,是从一个类里边获得一个具体对象

    JavaScript里边,没有类的概念,可以直接创建一个对象(或通过函数)出来,对象可以有默认成员,后期也可以给对象丰富成员出来.

    2.创建对象

         1.字面量方式创建对象

            var obj = {成员名称: 值, 成员名称:值,...}

        2. 构造函数方式创建对象

    3. object方式创建对象

    3. 对象在内存的分配

            和对象有关系的内存空间

        1.栈区    存放数据大小比较小,一般大小固定的信息适合存放在该空间

        2.堆区    存储数据比较多,空间较大,一般数据长度不固定的信息在该空间存放

        3.数据空间    该空间存放常量,类的静态属性

        4. 代码空间    存放函数体代码,方法体代码

    4. 对象调用其他函数或方法

    对象调用其他函数或调用其他对象函数方法

                4.1 以上代码并不是最优方案,给程序每创建一个新变量,就增加了变量污染的一层风险.

                    函数的执行方式: call 和apply方式

    5. 构造函数 与 普通函数

        构造函数和普通函数的区别:

        没有区别,就看使用,new就是构造函数,函数()就是普通函数调用

    6. 函数的各种执行方式

    1. 普通函数调用(包括匿名函数自调用)

    2. 构造函数执行new函数

    3. 作为对象的成员方法执行

    4. 通过call或apply执行 call和apply使得函数执行的时候可以控制变量污染的风险

    7. this

    1. 在函数/方法里this代表调用该函数/该方法的当前对象

    2.在事件中,this代表元素节点对象

            divnode.onclick = function(){alert(this.value)}

    3.代表window

    4.可以任意代表其他对象  在call和apply使用的时候,可以任意设置被执行函数内部this的代表

    8. 获取构造器

      构造器: 使用什么元素实例化的对象,元素就称为该对象的构造器

        var cat = Animal()  //Animal就称为cat对象的构造器

    对象.constructor; //获得构造器

    9.继承关键字 prototype

    10.对象遍历

    11. 复制继承

    特点: 继承非常灵活,可以根据实际强开需要为对象去继承成员

                如果有的对象不要额外成员,就不继承即可

                同时该继承允许同时继承"多个对象" 

    12. 异常处理

    相关文章

      网友评论

          本文标题:JS面向对象

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