new Object(一个数组)和new Array(一个对象) 的区别

新手上路,请多包涵
let arr = [1,2,3,4]
new Object(arr)

返回原来的数组

let obj = {a:1,b:2}
new Array(obj)

会将对象放到一个新数组中返回

如果new是通过返回值是否instanceof object来决定是否返回原对象的话,那为什么new Array会创建一个新数组,new Object不会创建一个新对象

阅读 2.2k
1 个回答

有疑问先仔细看文档:https://developer.mozilla.org...

If the value is an object already, it will return the value.

如果参数本身就是一个对象,就直接返回

let arr = [1,2,3,4]
let o1 = new Object(arr)

o1 === arr // true

再看数组构造法:https://developer.mozilla.org...

参数是初始化元素,或者数组长度。提供一个对象构造数组,会把这个对象当做数组元素

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题