为了账号安全,请及时绑定邮箱和手机立即绑定

javascript中类数组对象的内部存储结构怎样的

javascript中类数组对象的内部存储结构怎样的

繁花不似锦 2018-11-14 13:10:20
js中一般认为类数组满足下面几个条件1一个对象的属性名是正整数2有length属性,属性值为正整数3不是数组在jq中还有DOM中大量应用类数组,那为什么类数组也能像数组一样进行遍历,其可以调用Array.prototype.方法()?原理是什么,类数组中数据的存储结构又是怎样的,与一般对象有什么不同,与真正的数组又有什么不同?
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

1.遍历通过的是length,以及i++,这么个东东,那个对象let s = {0:'a',1:'b'}中s[0]就是'a'呀。所以可以像数组一样遍历咯。

2.第二个问题,调用Array.prototype中的方法,你不妨打印出来看一下

https://img1.sycdn.imooc.com//5c08d7a9000193b003150564.jpg

而所谓的类数组是Object,所以你再答应一下Object.prototype

https://img1.sycdn.imooc.com//5c08d7c00001669503610243.jpg

所以说,类数组是没有所谓的push,pop之类的方法,当然了,你也可以自己写这些方法

3.存储结构嘛,就是Object,只不过规定好了你问题中前两个条件。与一般对象不同,我没明白一般对象是什么,难道类数组不是一般对象?

4.与数组的不同嘛,这个别人也写的很全,你可以参考一下

ps:都是个人理解,有不正确的或者补充请指教,互相学习~


查看完整回答
反对 回复 2018-12-06
  • 1 回答
  • 0 关注
  • 744 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信