我了解如何定义这样的功能:
function myfunc(x,y,z) {
alert("Just an example " + x + y + z)
}
但这不是:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
(function ($) {
$.fn.idle = function (x, y, z) {
alert("Just an example " + x + y + z)
}(jQuery));
</script>
上面是我正在使用的库的一部分,但是我$.fn.idle
有点不明白。
到底在做什么 它以某种方式定义了一个名为“ idle”的函数,但是那又如何$.fn
呢?那(function ($) {
部分呢?同样,我理解$(document).ready(function() {
但(function ($) {
完全是陌生的。是短手吗?
(jQuery));
底部的含义是什么?
一个立即调用的功能表达,其别名jQuery
到$
其范围内:
(function($) {}(jQuery));
它立即创建并执行功能。这样,$
无论全局$
引用是什么,都可以在函数内部使用它来引用jQuery 。对于使用的页面很有用jQuery.noConflict()
。同样,在IIFE中声明的变量也不会泄漏到全局范围内。
至于问题的另一部分,$.fn === jQuery.prototype
。因此,通过向jQuery原型添加方法,可以在任何jQuery对象上调用它。例如:
$.fn.doSomething = function(){}; //add a method to the jQuery prototype
$('selector').doSomething(); //then you may call it on any jQuery object
有关jQuery插件创作的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句