$(’h1’)如何在jQuery中作为数组登录到Web控制台?
如果你在浏览器中执行console.log($('some selector'))
,它将返回看起来像数组的内容(第一行):
但请注意,它不是instanceof Array
的instanceof Array
,但它实际上是jQuery
对象 。
当你执行console.dir($('h1'))
,它显示它实际上是jQuery对象。
问题是,它们如何使它看起来像是Web控制台中的数组? 我注意到在jQuery源代码中它们添加了一些Array和Object方法的引用,并且在这里它们将toArray
(以及slice和其他)添加到jQuery
对象。 Web控制台是否以某种方式检查这些方法,如果找到一个( toArray
, indexOf
, slice
等),它会将其打印为数组吗? 我想从任何自定义对象中获取此行为,例如Ember.ArrayProxy
。 目前,当您记录Ember.ArrayProxy
它显示> Object
或其他,但将它显示为数组会很不错。
有任何想法吗?
您使用原型使对象inheritanceArray
,如下所示:
function SomeType() { this.push(16); } SomeType.prototype = []; SomeType.prototype.constructor = SomeType; // Make sure there are no unexpected results console.log(new SomeType()); // Displays in console as [16]
当然,所有jQuery对象都是jQuery
函数/构造函数的实例,因此jQuery就是这样做的。 作为奖励,由于inheritance,您可以从Array
获取所有方法,以及随附的索引!