首先,如果这是一个模糊的问题,我深表歉意,但我似乎无法向谷歌描述它。在 jQuery 中,当这样写的时候它叫什么:
$.something({
//stuff goes here
});
例如在 AJAX 调用中:
$.ajax({
//url
//type
//data
//success
});
我知道正常的语法通常是$(selector).action()
,但这里没有选择器。这是选择文档的某种速记吗?
首先,如果这是一个模糊的问题,我深表歉意,但我似乎无法向谷歌描述它。在 jQuery 中,当这样写的时候它叫什么:
$.something({
//stuff goes here
});
例如在 AJAX 调用中:
$.ajax({
//url
//type
//data
//success
});
我知道正常的语法通常是$(selector).action()
,但这里没有选择器。这是选择文档的某种速记吗?
这只是 jQuery 对象内部的一个松散函数,通常用于将它们应用于 DOM 元素没有意义的函数。
jQuery 中基本上有两种类型的函数:定义为 jQuery原型(也称为$.fn
)的属性的函数,以及定义在jQuery对象(实际上是一个函数)本身上的函数。$.ajax
是后者的示例(以及$.post
等$.get
)
jQuery.extend({
//...
map: function( elems, callback, arg ) { ... }
}
... 将任何集合作为其参数并返回一个数组。
jQuery.fn = jQuery.prototype = {
// ...
map: function( callback ) {
return this.pushStack( jQuery.map(this, function( elem, i ) {
return callback.call( elem, i, elem );
}));
},
}
... 更具体地说,将要映射的 jQuery 对象作为其上下文,并返回一个 jQuery 对象。
在 JavaScript 中,{key: value}
是关联数组的语法。fn()
是函数调用的语法。
所以模式$.foo({ key: value});
调用函数$.foo
,地图{key: value}
作为参数。该函数foo
恰好是 jQuery 命名空间中的子类。在 JS(和其他函数式语言)中,函数是对象,并且可以有父级、子级、属性和方法,就像在 OO 语言中一样。
文档将其中大部分放在实用程序部分。也许正因为如此,我看到它们被称为“jQuery [something] 实用函数”。我们调用 jQuery 对象的$().something
方法。