<分区>
我一直认为 jQuery $
函数会返回一个附加了 jQuery 方法的数组。
我想提供一些例子:
假设我们有一个数组
var arr = [1,2,3];
然后我们可以添加我们自己的属性:
arr.someProp = 10;
arr.someMethod = function() { ... }
之后 arr
仍然是一个数组,尽管有自定义属性:
arr instanceof Array; //true
所以,在最近的实验之前,我认为 jQuery 对象类似于 arr
(但更复杂)。
我只是运行这段代码:
$('div') instanceof Array; //false (!!!)
但它的行为就像一个数组。它有 push
方法,length
属性,即使在这种情况下也能正常工作:
var $jq = $('div');
$jq.length; //3
$jq.push(123); //wrong code, I know, this is just for test
$jq.length //4
此外,如果您执行 console.log($('div'))
,它会输出如下内容:
[<div></div>, <div></div>, <div></div>]
除了 jQuery 对象还有一些等同于 Array.prototype
方法的方法:
$('div').sort === Array.prototype.sort; //true
$('div').splice === Array.prototype.splice; //true
我的问题是:这个东西是如何创建的?
所以如果你们向我解释一下并提供一些代码示例,我将非常感谢你们。