pim*_*vdb 10 arrays jquery google-chrome instance
我想知道jQuery对象如何在Chrome中的Developer Tools的控制台日志中显示为一个数组.
例如,如果我执行$('<a>'),我在控制台日志中看到的是:
[<a>?</a>?]
Run Code Online (Sandbox Code Playgroud)
但以下陈述是错误的:
var a = $("<a>");
Array.isArray(a); // false
a instanceof Array; // false
Run Code Online (Sandbox Code Playgroud)
我试图修改jQuery并看看会发生什么,令人惊讶的是,length从jQuery函数中删除会删除数组表示法:
length: 0, // commenting this line removes array notation
Run Code Online (Sandbox Code Playgroud)
相反,它会显示为(箭头是要展开的实体):
> jQuery.jQuery.fn.jQuery.init
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试创建我自己的构造函数,它应该以数组表示法显示,它不起作用:
var test = function() { this.length = 0 };
new test();
// Logged (arrow is same one as before):
// > test
Run Code Online (Sandbox Code Playgroud)
所以我想知道jQuery代码中的什么使Developer Tools将实例显示为数组.在jQuery中添加了什么属性/函数/东西,使得Developer Tools在显示实例时将其作为数组处理?
Bor*_*mus 11
来自http://api.jquery.com/jQuery.makeArray/:
jQuery和JavaScript中的许多方法都返回类似于数组的对象.例如,jQuery工厂函数$()返回一个jQuery对象,该对象具有数组的许多属性(长度,[]数组访问运算符等),但与数组不完全相同,缺少一些数组的内置方法(如.pop()和.reverse()).
基本上,该对象必须具有length和splice属性中,将阵列状.这是一个相关的SO问题:Javascript中的数组像对象
| 归档时间: |
|
| 查看次数: |
1860 次 |
| 最近记录: |