zepto-1.2.0.js的zepto对象是类数组还是对象?
源码里面$(selector)
最后返回的是new Z(dom, selector)
,既然是new一个函数,那结果就应该是个对象啊,我也用Array.isArray(img)
及Object.prototype.toString.call(img)
判断了一下,确实不是数组,但是在控制台里面为什么显示的zepto对象是个数组形式呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经测试, 如果一个对象
A
上或者其原型链上存在length
和splice
这两个属性, 并且typeof A.length === 'number' && typeof A.splice === 'function'
为真, 则在ChromeDevTools里面打印出来会和数组类似. 这应该是ChromeDevTools的一个黑科技吧? 我在Console
的相关标准里面没有看到有这一节.比如:
Zepto 1.2.0
里面$.prototype
恰好实现了这两个属性:https://github.com/madrobby/z...
刚又试了一下,确实加上这个splice方法就能输出数组形式了,内部还是用.call的形式去调了数组上的方法