zoukankan      html  css  js  c++  java
  • js的new到底干了啥

    javascript通过new操作符构建一个对象的步骤##

    《Javascript高级程序设计》的解释:###

    1. 创建一个对象
    2. 将构造函数的作用域赋给新对象(把新对象作为构造函数的调用上下文,也就是this的指向)
    3. 执行构造函数中的代码
    4. 返回这个新对象
    5. 如果在构造函数里边return了一个对象,这个对象就会取代默认的返回,那么new操作符实例化出来的东西就不再和构造函数以及其原型有关系了 就相当于工厂模式直接创建对象一样

    基于第5点,我实在弄不明白 javascript高级程序设计里边 第六章创建对象 工厂模式和寄生构造函数模式有什么区别; 函数体里边的操作一毛一样,然后调用方式工厂是直接调用,寄生是new 操作, 但是由于构造函数里边显示声明了return 又变得和工厂没什么本质上的区别, 什么鬼。。。

    《你不知道的javascript 上卷》的解释,个人觉得更加正确###

    1. 创建一个全新的对象
    2. 这个新对象会被执行[[Prototype]]连接
    3. 这个新对象会被绑定到函数调用的this
    4. 如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象
  • 相关阅读:
    EXP8
    EXP7
    数据库作业
    windows下如何编译运行龙脉代码
    CVE-2019-6340 Drupal8's REST RCE 漏洞复现
    小黄衫获奖感言
    Exp6 MSF应用基础
    Exp5
    实验一 密码引擎-4-国䀄算法交叉测试(选做)
    2020-2021-2 20175335 丹增罗布 《网络对抗技术》Exp1 PC平台逆向破解
  • 原文地址:https://www.cnblogs.com/mushishi/p/5770307.html
Copyright © 2011-2022 走看看