无意间发现了同事代码里有这样的写法,new了一个数组然后当对象用,为什么数组也能直接写属性呢?
作者:紫云飞 链接:https://www.zhihu.com/question/408959053/answer/1360392908 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
只要是对象值就能当成 plain object 来用,虽然一般没人这么干,比如还可以用正则对象
甚至数字对象
猜测你这个同事是不是从 PHP 来的,习惯把关联数组和索引数组都用数组来实现。
其实带非索引属性的数组对象 JS 内部 API 也会创建:
正则匹配的结果 ,比如 /./.exec('123') ,带了 input 属性等
/./.exec('123')
input
模板字符串对象,比如 console.log`123`,带了 raw属性
raw
最后更新于5年前