1.关于$.fn
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。
如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了.
那么你可以这样子:$("#div").abc();
jQuery为开发插件提拱了两个方法,分别是:
jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。
jQuery.fn.extend(object);给jQuery对象添加方法。
2.匿名函数
{xxx:function(){...}} 的话,是定义对象的属性为某个函数,相当于类的方法。
类似于 var obj = new Obje而且XXX:function(){}这样的写法,必须在外边有{}时才能使用ct();
obj.xxx = function(){....};
3.为什么将jquery作为参数传递给匿名函数?
(function($){
console.log($('.right').html());
})(jQuery)
-
如果不把jQuery当参数传递,则你使用变量
jQuery/$
的时候,首先会在函数体内查找,然后进fn
查找,最后到window下查找。 -
而你把jQuery传进去之后,则只需要在函数体内查找
$
即可。
4.jQuery里面的$("this")和$(this)有什么区别
- $("this")是使用标签选择器,查找名为this的标签
- $(this)取出当前对象并转换为jQuery对象,$(this)是jquery对象,能调用jquery的方法,例如click(), keyup()