我已经使用jQuery有一段时间了,理解了选择器和链式编程的基础知识。现在我准备深入学习高级JavaScript概念。但是我现在对jQuery的多重角色感到困惑。
举个例子,
jQuery.add(...)
这似乎是jQuery是一个JavaScript对象,我们可以向其发送消息。
jQuery(function() {...}) or jQuery(...selector...)
这次,jQuery似乎是一个可以带一些参数的JavaScript函数。
它到底是什么?
我已经使用jQuery有一段时间了,理解了选择器和链式编程的基础知识。现在我准备深入学习高级JavaScript概念。但是我现在对jQuery的多重角色感到困惑。
举个例子,
jQuery.add(...)
jQuery(function() {...}) or jQuery(...selector...)
console.log(jQuery);
这段代码输出的结果是'> function',意思是jQuery是一个函数。同时你也可以尝试运行下面这行代码:
var some_name = function() { return 42; };
some_name.some_property = 84;
some_name.some_method = function() { return 63; };
typeof some_name; // outputs "function"
// but...
some_name.some_method(); // ...is also possible :)
jquery(...);
等同于:
new jQuery(...);
更多细节请点击这里
其次,$
是 jQuery
的同义词。
第三,重要的是要理解 JavaScript 允许调用函数而不分配返回的任何内容。 var foo = bar(auguments);
和 bar(auguments);
都是合法的语句。
最后,JavaScript 函数是一等对象。它们可以传递到其他函数中,由其他函数返回,通过赋值进行别名处理,并成为其他对象的属性。
有了这个理解,就应该更容易看到像 $(selector);
和 $(function(){...});
这样的语句是如何工作的。
很难比它自己的描述更深入地解释:
jQuery是一个快速而简洁的JavaScript库,简化了HTML文档遍历、事件处理、动画和Ajax交互,以实现快速的Web开发。jQuery旨在改变您编写JavaScript的方式。
我一直认为它是另一种利用JavaScript实现编码简单化的语言。它作为函数来执行一行代码中的多个操作,而不是20多行;选择器将50多个字符缩短到10多个字符,它还可以做更多的事情。
如果您真的想深入了解编码,可以下载jQuery的开发版本。
jQuery
(和 $
)所指代的值的含义。 - Felix Kling
jQuery
,那么它一定是一个函数。但是函数也是对象。你可以给它分配任何属性(比如add
)。 - Felix Kling