高级Js-面向对象介绍1.1

原型与原型链

课堂小结:

  一、面向对象与面向过程区别

        1、面向过程是亲力亲为的,事物巨细,面面俱到,步步紧跟,有条不紊。

        2、面向对象就是找一个对象,指挥得结果。

        3、面向对象将执行者转化为指挥者。

        4、面向对象不是面向过程的代替,而是面向过程的封装。

二、 面向对象的特性

        1、封装性

        2、继承性

        3、(多态)抽象 

三、面向对象的的方式

        //  创建一个模板,用于创建对象(实例instance)

        //  而在js中创建的对象的模板是构造函数

        //  在其他语言中是用类

四、构造函数

        // 1、会在内存中创建一个空的对象,

        // 2、会设置构造函数的this,让this指向刚刚创建好的对象

        // 3、执行构造函数的代码

        // 4、返回对象

五、

  1、 我们无法使用typeof获取对象的具体类型;

   2 获取对象的具体类型:constructor 构造器

    var arr=[];   console.log(arr.constructor)

    instanceof 判断某个对象是否是某个构造函数的实例/对象(判断某个函数时不时某个构造函数创建的)

    console.log(arr instanceof Array)

六、静态成员与实例成员

        // 这个就是静态成员:直接对象来调用

          var Math={

              PI:3.1415,

              min:function(){

              },

              max:function(){

              }

          }

//   实例成员:构造函数的成员就是实例成员

        // 什么是实例:对象的另一种说法

七、原型与原型链

每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去

 //  当调用属性或方法是时候,先去找对象本身属性/放发

    //  如果对象没有该属性/方法,此时去调用原型中的属性/方法,

    //  如果对象没有。原型没有,此时就会报错

    // stu1=__proto__ 的对象等于构造函数中的Studenttwo.prototype;

    // __proto__是非标准的属性

原型中的constructor指向的是构造函数,打印的是当前构造函数

猜你喜欢

转载自blog.csdn.net/qq_42113778/article/details/104398272