JavaScript 重新定义了数组的含义,因为数组是一个具有 .length
属性以及诸如 .slice()
和 .join( )
。
jQuery 将 jQuery 对象定义为“类似数组”,因为它有一个 length
属性,但它没有像 join()
这样的某些数组方法。
如果我将 jQuery 对象定义为一个对象,并且忘记提及与数组有关的任何内容,我将如何定义它?除了长度之外它还有什么属性?
我猜所有的方法都是你在文档中看到的,远远超过了数组中方法的数量。
最佳答案
jQuery 对象类似于数组,这意味着它包含零个或多个索引(名称是从零开始的正整数的属性)。除了这些索引之外,jQuery 对象还包含以下属性:
长度
上下文
选择器
还有大约 140 个继承方法(在 jQuery.prototype
对象上定义 - 您可以执行 console.dir(jQuery.prototype)
来获取完整列表...)。
请注意,jQuery 对象不包含(或继承)Array 方法(slice、substr...)。如果您想在 jQuery 对象上执行这些方法,请使用 call
/apply
。
例如,如果页面上有 3 个 TEXTAREA 元素,并且您执行以下操作:
var j = $('textarea');
那么这个j
jQuery对象将包含这些属性:
0
- 对第一个 TEXTAREA 元素的引用1
- 对第二个 TEXTAREA 元素的引用2
- 对第三个 TEXTAREA 元素的引用长度
- 为3
context
- 对document
对象的引用选择器
- 即'textarea'
- 加上所有这些继承的方法...
关于terminology - 什么是 jQuery 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6445180/