$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。
如扩展$.fn.clickdown(),即$.fn.clickdown()是对jquery扩展了一个clickdown方法,那么后面你的每一个jquery实例都可以引用这个方法。
jQuery.fn =jQuery.prototype
$('#list').clickdown();
.jquery 属性是通过 jQuery 原型赋值的,通过使用它的别名 $.fn 进行引用。
它是一个含有 jQuery 版本号的字符串。例如"2.2.2"
console.log($.fn.jquery); // => 2.2.2
jQuery.extend(object)用来在jQuery命名空间上增加新函数。
jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a : b; }});
$.min(2,3); // => 2
$.max(5,6); // => 6
jQuery.fn.extend(object)扩展 jQuery 元素集来提供新的方法(通常用来制作插件)。
jQuery.fn.extend({ check: function() { return this.each(function() { this.checked = true; }); }, uncheck: function() { return this.each(function() { this.checked = false; }); }});
$("input[type=checkbox]") .check();
$("input[type=radio]").uncheck();
jQuery.extend() 的调用并不会把方法扩展到对象的实例上,而 jQuery.fn.extend()的调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它有了这些方法。