Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 您能解释一下jQuery如何同时使用$as函数和对象吗?_Javascript_Jquery_Prototype - Fatal编程技术网

Javascript 您能解释一下jQuery如何同时使用$as函数和对象吗?

Javascript 您能解释一下jQuery如何同时使用$as函数和对象吗?,javascript,jquery,prototype,Javascript,Jquery,Prototype,我已经研究了jQuery的源代码,我并不完全理解它如何在选择器中使用$symbol作为函数 $el = $('#element'); 和作为辅助函数中的对象 $.each([1, 2, 3], function(num) { ... }); $function创建了新的jQuery.fn.init,这在原型中的某个地方,我很困惑。Javascript中的函数是一个对象,所以可以向函数添加属性 例如: function lib(x) { return x + 1; } lib.add =

我已经研究了jQuery的源代码,我并不完全理解它如何在选择器中使用$symbol作为函数

$el = $('#element');
和作为辅助函数中的对象

$.each([1, 2, 3], function(num) { ... });

$function创建了新的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的简写,它表示一个函数

$el=$(“#元素”)中
,$(与jquery相同)是将选择器作为函数参数的函数名,从而产生语法
$()


执行此选择器函数时,将执行
jQuery.fn.init
(初始值设定项函数)并返回jQuery对象,从而公开可以使用的不同选择器方法

函数是对象。也许这也有帮助:是的,我出于好奇做了这样的事情,你会如何将
lib
作为一个对象文字来编写?@fuzzybabybunny:如果你这样做,那么它就是一个不是函数的对象。函数是一个对象,但你不能让任何对象成为函数。哈哈,好吧,现在我正式感到困惑了。一切都是物体,不是吗?我认为一切都需要从
{//keys and values}
..@fuzzybabybunny开始:从对象文本中得到的是
对象
类型的对象。函数声明创建类型为
function
的对象。不能将
对象
类型的对象转换为
函数
类型的对象。另一方面,
函数
类型的对象继承自
对象
类型,因此它具有所有属性。mind=blow。很酷。