DinoStray
V2EX  ›  问与答

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

  •  
  •   DinoStray · Mar 26, 2021 · 2545 views
    This topic created in 2047 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
    shakaraka
    Mar 26, 2021
    1
    var a = []
    这样也可以
    DinoStray
    DinoStray
    OP
    Mar 26, 2021
    3
    @yanghanlin 谢谢, 这个网站是我看过的最好的 js 教程了, 我会好好学习的
    autoxbc
    autoxbc
    Mar 26, 2021❤️1
    4
    warjiang
    warjiang
    Mar 27, 2021
    5
    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   ·   Privacy   ·   Solana   ·   3314 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 05:08 · PVG 13:08 · LAX 21:08 · JFK 00:08
    ♥ Do have faith in what you're doing.