zoukankan      html  css  js  c++  java
  • 0148 JavaScript 的 new关键字

    我的版本
    1. 在构造函数代码开始执行之前,创建一个空对象;
    2. 设置新对象的__proto__指向构造函数的prototype对象,p.proto = XXXX.prototype;
    3. 执行构造函数,修改this的指向,让构造函数中的this指向创建出来的空对象,拷贝构造函数中的方法、属性给新对象;
    4. 判断构造函数返回的结果,如果返回的不是引用类型值,默认把实例返回;如果返回的是引用类型值,则返回引用类型。

    ZXT
    1. 拥有普通函数执行的一面,让他作为普通函数执行
    2. 创建一个实例对象
      ->空对象
      ->对象.proto===类.prototype
    3. 方法执行的时候,方法中的this是实例对象
    4. 判断方法的返回结果,如果返回的不是引用类型值,默认把实例返回

    5.2.3.2 new关键字的作用
    1. 在构造函数代码开始执行之前,创建一个空对象;
    2. 修改this的指向,把this指向创建出来的空对象;
    3. 执行函数的代码
    4. 在函数完成之后,返回this---即创建出来的对象

    new -- 2015 ZD:
    1. 创建一个空对象:new obj = { };
    2. 用空对象,调用构造函数,构造函数在空对象中添加属性、方法;
    3. 设置新对象的__proto__指向构造函数的prototype对象;
      【任何一个对象都有__proto__,任何一个函数都有prototype对象。】
    4. 返回新对象的地址。

    new的本质复习【WSK】

    当我们new 一个实例后,系统自动做了如下事情:
    (1)创建一个空对象, var p = {}。
    (2)拷贝构造函数中的方法、属性到空对象中。
    (3)自动成生一个属性_proto_指向类的原型, p.proto = XXXX.prototype。


    new一个对象背后做了些什么? 【ShangGuiGu】
    • 创建一个空对象
    • 给对象设置__proto__, 值为构造函数对象的prototype属性值, this.proto = Fn.prototype
    • 执行构造函数体(给对象添加属性/方法)

    New 和构造函数确认了眼神:
    1.他们俩生了一个宝宝。
    2.这个宝宝必须是亲生的 this指向。
    3.教孩子读书一肚子墨水。
    4.长大挣钱回报父母。

  • 相关阅读:
    Sass变量、嵌套
    遮罩层2
    遮罩层
    大图轮播
    项目资料(主页)
    关于时间控制和制定时间日期
    dom作业
    js的dom操作和函数
    js数组去重
    js For循环练习。
  • 原文地址:https://www.cnblogs.com/jianjie/p/12153742.html
Copyright © 2011-2022 走看看