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.长大挣钱回报父母。

  • 相关阅读:
    hdu 5119 Happy Matt Friends
    hdu 5128 The E-pang Palace
    hdu 5131 Song Jiang's rank list
    hdu 5135 Little Zu Chongzhi's Triangles
    hdu 5137 How Many Maos Does the Guanxi Worth
    hdu 5122 K.Bro Sorting
    Human Gene Functions
    Palindrome(最长公共子序列)
    A Simple problem
    Alignment ( 最长上升(下降)子序列 )
  • 原文地址:https://www.cnblogs.com/jianjie/p/12153742.html
Copyright © 2011-2022 走看看