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

2021-03-26 19:21:17 +08:00
 DinoStray
var a = Array()
var a = new Array()

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

1462 次点击
所在节点    问与答
5 条回复
wunonglin
2021-03-26 19:22:30 +08:00
var a = []
这样也可以
yanghanlin
2021-03-26 19:27:39 +08:00
DinoStray
2021-03-26 19:50:30 +08:00
@yanghanlin 谢谢, 这个网站是我看过的最好的 js 教程了, 我会好好学习的
autoxbc
2021-03-26 20:25:23 +08:00
warjiang
2021-03-27 23:20:31 +08:00
var a = Array() 是函数调用;

var a = new Array() 分三步
1. 创建对象 obj
2. Array.call(obj),在 obj 上下文执行 Array,将返回结果记为 ret
3. 如果 ret 为空,则用 obj 作为返回值,如果 ret 不为空,则用 ret 作为返回值

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/765518

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX