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表达式中的函数调用会自动返回这个新对象
  • 相关阅读:
    GSON -JSON 反序列化-多节点名称支持
    Jedis 分片原理
    闭锁-CountDownLatch
    XML序列化及反序列化
    用GIT操作SVN
    报表worker-CPU使用率过高原因排查
    二.PlantUML 之活动图
    一.PlantUML 与 IDEA 集成
    ArrayList
    VI常用命令
  • 原文地址:https://www.cnblogs.com/mushishi/p/5770307.html
Copyright © 2011-2022 走看看