1

首先,如果这是一个模糊的问题,我深表歉意,但我似乎无法向谷歌描述它。在 jQuery 中,当这样写的时候它叫什么:

$.something({
//stuff goes here
});

例如在 AJAX 调用中:

$.ajax({
//url
//type
//data
//success
});

我知道正常的语法通常是$(selector).action(),但这里没有选择器。这是选择文档的某种速记吗?

4

4 回答 4

5

这只是 jQuery 对象内部的一个松散函数,通常用于将它们应用于 DOM 元素没有意义的函数。

于 2013-09-29T19:13:14.763 回答
2

jQuery 中基本上有两种类型的函数:定义为 jQuery原型(也称为$.fn)的属性的函数,以及定义在jQuery对象(实际上是一个函数)本身上的函数。$.ajax是后者的示例(以及$.post$.get

区别非常明显map$.map,定义如下......

jQuery.extend({
  //...
  map: function( elems, callback, arg ) { ... }
}

... 将任何集合作为其参数并返回一个数组。

$().map,定义如下...

jQuery.fn = jQuery.prototype = {
   // ...
   map: function( callback ) {
     return this.pushStack( jQuery.map(this, function( elem, i ) {
       return callback.call( elem, i, elem );
     }));
   },
}

... 更具体地说,将要映射的 jQuery 对象作为其上下文,并返回一个 jQuery 对象。

于 2013-09-29T19:13:53.997 回答
1

在 JavaScript 中,{key: value}是关联数组的语法。fn()是函数调用的语法。

所以模式$.foo({ key: value});调用函数$.foo,地图{key: value}作为参数。该函数foo恰好是 jQuery 命名空间中的子类。在 JS(和其他函数式语言)中,函数是对象,并且可以有父级、子级、属性和方法,就像在 OO 语言中一样。

于 2013-09-29T19:18:15.387 回答
1

文档将其中大部分放在实用程序部分。也许正因为如此,我看到它们被称为“jQuery [something] 实用函数”。我们调用 jQuery 对象的$().something 方法

于 2013-09-29T19:19:23.490 回答