Rya*_*ley 11 javascript arrays google-chrome undefined google-chrome-devtools
我相信ECMA标准的一部分是,当对象是类似数组时,Javascript控制台会将对象显示为数组.
例如:["hello","world"]用于包含数字索引的字符串的对象.
类似数组的行为被定义为对象上存在的长度属性和拼接方法,以及数字索引属性.
我们中的许多人可能在过去使用过jQuery.
我一直试图利用这种行为并认为这是可取的.但是我有额外的要求,我的索引使用getter/setter来设置它们,以便我可以在修改时进行一些额外的处理.
但是,当我这样做时,上面的数组将呈现为:
[undefined×2]
但是,该对象的行为与简单示例完全相同.
看到这个小提琴有一个更好的解释:http://jsfiddle.net/5YgAv/
所以你看?两个非常相似的例子,但是getter的存在已经在控制台中破坏了它.
我一直在调试最新的Chromium源代码,看起来Chrome在控制台上推送了一条基本上包含getter函数的消息.但是,无法修改控制台源代码,以便它可以调用该函数并获取值.如果可行,那么我们可以修改开发人员工具以正确处理getter和setter.
我想知道的是,如果有人对这个有趣的小错误有任何见解,或者在我将其归档为Chrome团队的一个错误之前可能最好解决这个问题,这个问题很长时间被遗忘并埋藏在Google的深处.我其实很喜欢以这种或那种方式解决这个问题.
我也对一种优雅的解决方法持开放态度,允许我在修改类似数组的对象上的任何属性时进行一些特殊处理.
帮助我Obi-Stackoverflow-Kenobi,你是我唯一的希望!
[瑞安]
虽然这并不能回答为什么 Chrome 不会像数组一样写出数组的问题,但有一种方法可以“欺骗”Chrome 这样做。对我们来说幸运的是,这非常简单。
请参阅此 jsFiddle:http://jsfiddle.net/YXwxS/
与此同时,我将继续研究这个问题,因为这是一个有趣的问题:)
| 归档时间: | 
 | 
| 查看次数: | 1344 次 | 
| 最近记录: |