你能解释一下 jQuery 如何同时使用 $ 作为函数和对象吗?
Can you explain me how jQuery use $ as function and object the same time?
我查看了 jQuery 来源,但我并不完全理解它如何在选择器中使用 $ 符号作为函数
$el = $('#element');
并作为辅助函数中的对象
$.each([1, 2, 3], function(num) { ... });
$ 函数创建新的 jQuery.fn.init,它在原型中的某处,我很困惑。
Javascript中的函数是一个对象,因此您可以向函数添加属性。
示例:
function lib(x) {
return x + 1;
}
lib.add = function(a, b){
return a + b;
};
现在您可以将它用作函数和具有函数的对象:
var n = lib(4); // n = 5
var m = lib.add(7, 8); // m = 15
jQuery 做同样的事情,只是使用 $
作为名称而不是我在示例中使用的 lib
。
$
名称通常是 jQuery
名称的别名,而 jQuery.fn
是对 jQuery
函数原型的引用。所以当jQuery.fn.init
被调用时,它和jQuery.prototype.init
.
是一样的
$ 只是 jquery 的 shorthand,代表一个函数。
在$el = $('#element');
中,$(与jquery相同)是将选择器作为函数参数的函数名,语法为$();
执行此选择器函数时,将执行 jQuery.fn.init
(初始化函数)并 returns jQuery 对象,公开您可以使用的不同选择器方法。
我查看了 jQuery 来源,但我并不完全理解它如何在选择器中使用 $ 符号作为函数
$el = $('#element');
并作为辅助函数中的对象
$.each([1, 2, 3], function(num) { ... });
$ 函数创建新的 jQuery.fn.init,它在原型中的某处,我很困惑。
Javascript中的函数是一个对象,因此您可以向函数添加属性。
示例:
function lib(x) {
return x + 1;
}
lib.add = function(a, b){
return a + b;
};
现在您可以将它用作函数和具有函数的对象:
var n = lib(4); // n = 5
var m = lib.add(7, 8); // m = 15
jQuery 做同样的事情,只是使用 $
作为名称而不是我在示例中使用的 lib
。
$
名称通常是 jQuery
名称的别名,而 jQuery.fn
是对 jQuery
函数原型的引用。所以当jQuery.fn.init
被调用时,它和jQuery.prototype.init
.
$ 只是 jquery 的 shorthand,代表一个函数。
在$el = $('#element');
中,$(与jquery相同)是将选择器作为函数参数的函数名,语法为$();
执行此选择器函数时,将执行 jQuery.fn.init
(初始化函数)并 returns jQuery 对象,公开您可以使用的不同选择器方法。