JS面向对象

2018-07-09  本文已影响7人  JessWang

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. 异常处理

上一篇下一篇

猜你喜欢

热点阅读