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表达式中的函数调用会自动返回这个新对象
  • 相关阅读:
    2021年4月1日
    2021年3月31日
    2021年3月30日
    2021年3月29日
    2021年3月27日
    2021年3月26日
    2021年3月25日
    人件集阅读笔记03
    2020年3月24日
    构建之法阅读笔记02
  • 原文地址:https://www.cnblogs.com/mushishi/p/5770307.html
Copyright © 2011-2022 走看看