为什么有些JS对象在控制台中显示为数组?

时间:2012-03-16 14:17:15

标签: javascript jquery

  

可能重复:
  What makes a jQuery object show up as an array in Chrome's Developer Tools?

我想知道为什么在javascript控制台中出现这种行为:

在这个例子中,一切都很清楚:

var obj = {find: function () {}}
obj // Object { find=function()}
obj.find // function()

在下面的示例中,我想了解一下$.fn

的输出

我希望$ .fn的输出像一个包含键和值的Object,但是......

$.fn // [] // ***************** freaky part ****************
$.fn.find // function()

2 个答案:

答案 0 :(得分:3)

$.fn同时具有lengthsplice属性,这会让控制台误认为它是一个数组。

> $.fn
[]
> delete $.fn.length   // or delete $.fn.splice
true
> $.fn
  Object

答案 1 :(得分:-2)

$('body').find('div') //<-- that's a prototyped method of the object that $ returns