gpt4 book ai didi

jquery - 是什么让 jQuery 对象在 Chrome 开发工具中显示为数组?

转载 作者:行者123 更新时间:2023-12-03 22:21:22 26 4
gpt4 key购买 nike

我想知道 jQuery 对象怎么可能在 Chrome 开发者工具的控制台日志中显示为数组。

例如如果我执行$('<a>') ,我在控制台日志中看到的是:

[<a>​</a>​]

但以下说法是错误的:

var a = $("<a>");

Array.isArray(a); // false
a instanceof Array; // false

我尝试修改 jQuery 并看看会发生什么,令人惊讶的一件事是删除 length从 jQuery 函数中删除数组符号:

length: 0, // commenting this line removes array notation

相反,它显示为(箭头是要展开的实心箭头):

> jQuery.jQuery.fn.jQuery.init

但是,如果我尝试创建自己的构造函数,该构造函数应该以数组表示法显示,则它不起作用:

var test = function() { this.length = 0 };

new test();

// Logged (arrow is same one as before):
// > test

所以我想知道 jQuery 代码中的什么使开发人员工具将实例显示为数组。 jQuery 中添加了哪些属性/函数/事物,使得开发人员工具在显示实例时将其作为数组处理?

最佳答案

来自http://api.jquery.com/jQuery.makeArray/ :

Many methods, both in jQuery and in JavaScript in general, return objects that are array-like. For example, the jQuery factory function $() returns a jQuery object that has many of the properties of an array (a length, the [] array access operator, etc.), but is not exactly the same as an array and lacks some of an array's built-in methods (such as .pop() and .reverse()).

基本上,对象必须具有 lengthsplice 属性才能类似于数组。这是一个相关的问题:Array Like Objects in Javascript

关于jquery - 是什么让 jQuery 对象在 Chrome 开发工具中显示为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7261670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com