一.js高级(2) -构造函数-原型对象

3.构造函数用new创建实例的过程

  1)       创建一个空对象

  2)       将this 指向实例, 将函数的作用域赋给空对象

  3)       创建新对象

  4)       返回新对象

使用构造函数不仅代码更加简洁,更重要的是能够识别对象的类型了

4.构造函数的实例的关系 

      1)实例的constructor = 构造函数 console.log(p1.constructor = Person)  true

        Costructor 属性最初就是用来标识对象的类型的,

    2)  用instanceof判断对象的类型更加严谨, console.log(p1 instanceof Person)  true

扫描二维码关注公众号,回复: 4476171 查看本文章

 

  1. 构造函数的问题

    每创建一个实例, 都生成新的一模一样方法,造成内存的极大浪费

    Console.log(p1.sayHello == p2.sayHello)  false

   2. 解决方法:这样我们想到把方法放到函数的外面,这样 p1.sayhello = p2.sayHello

    function sayHello = function() {

             Console.log (“你好”)

    }

    function Person(name, age){

    This.sayHello = sayHello;
    }

  

    3. 初步解决方法:将方法封装在一个对象里面,避免全局命名空间冲突的问题

              var fns = {

                 sayHello:function(){

                   Console.log (“你好”)

    },

    sayAge: function(){

      console.log(this.age)

      }

    }

猜你喜欢

转载自www.cnblogs.com/noraZhang/p/10108156.html
今日推荐