我试图了解 jQuery 是如何编码的。
他们有一个对象:
jQuery.fn = {
//key value pairs
}
但是如果我jQuery.fn
在浏览器控制台中输入,它只会返回[]
而不是对象本身。有谁知道为什么?
我试图了解 jQuery 是如何编码的。
他们有一个对象:
jQuery.fn = {
//key value pairs
}
但是如果我jQuery.fn
在浏览器控制台中输入,它只会返回[]
而不是对象本身。有谁知道为什么?
jQuery.fn
简单地满足了开发者控制台类数组的要求。它实际上不是一个Array
实例*,但它有一个可以被视为数组的接口。
*如果jQuery.fn
实际上是一个数组,则jQuery.fn instanceof Array
计算结果为true
; 它没有。它确实复制了一些Array.prototype
方法。
如果您想检查一个对象是否真的是Array
,有两种方法,最简单的是obj instanceof Array
,但是对于继承自 的对象也是如此Array
。如果你想检查一个对象是否是一个数组,但需要排除继承自Array
你的对象,应该使用:
function isArray(arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
}
例子:
var a, b;
function Foo() {}
Foo.prototype = [];
a = new Foo();
b = [];
a instanceof Array; //true
b instanceof Array; //true
isArray(a); //false
isArray(b); //true
尝试在控制台中只输入 jQuery,jQuery.fn 是它的原型