DinoStray
V2EX  ›  问与答

nodejs 里, 为啥 Array 是否使用 new 都可以被构造

  •  
  •   DinoStray · Mar 26, 2021 · 2088 views
    This topic created in 1885 days ago, the information mentioned may be changed or developed.
    var a = Array()
    var a = new Array()
    

    这两行代码都可以构造一个 Array, 有啥区别? 为啥 class 一定要有 new 才能构造, Array 却不需要? Array 和自定义的 class 有啥区别

    5 replies    2021-03-27 23:20:31 +08:00
    shakaraka
        1
    shakaraka  
    PRO
       Mar 26, 2021
    var a = []
    这样也可以
    DinoStray
        3
    DinoStray  
    OP
       Mar 26, 2021
    @yanghanlin 谢谢, 这个网站是我看过的最好的 js 教程了, 我会好好学习的
    autoxbc
        4
    autoxbc  
       Mar 26, 2021   ❤️ 1
    warjiang
        5
    warjiang  
       Mar 27, 2021
    var a = Array() 是函数调用;

    var a = new Array() 分三步
    1. 创建对象 obj
    2. Array.call(obj),在 obj 上下文执行 Array,将返回结果记为 ret
    3. 如果 ret 为空,则用 obj 作为返回值,如果 ret 不为空,则用 ret 作为返回值
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3509 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 11:15 · PVG 19:15 · LAX 04:15 · JFK 07:15
    ♥ Do have faith in what you're doing.