this相关


1.prototype
2.extend
3.this的定位


一、prototype

$.fn.xxx = function(opt){}

是为jquery的prototype定义了函数,
这样, 任何一个jquery对象都可以使用这个成员函数,
//Jquery插件的一种方法
//你需要知道的是.prototype

二、extend

$.fn.extend()

在jquery中重新定义了extend的使用方法,
如果只有一个参数, 那么就是扩展本身, 即.fn, 也就是jquery的prototype, 这样, 和上面的prototype就一样了

还有一种写法就是

$.extend($.fn, {}); 

//这个extend不是一个参数,它作用是用后面的扩展前面的, 即用{}扩展了$.fn, 还是一个意思

三、this的定位

1.关于$(this)和this, 你关键还是要知道this表示的是什么:

  • 如果this是一个dom元素 -> $(this)是一个jquery元素,
  • 如果this是一个jquery元素 -> $(this)还是一个jquery元素,

//虽然你用==去判断两者是不同的, 但是他们内容都是一样的

2.关于this和$(this)还要注意一点

$('.abc').click(function(){});

//其中this是dom元素, $(this)是jquery元素,

而写插件的时候

由于是扩展prototype, 所以this是对象实例,
this就是jquery对象, $(this)还是jquery对象,
他们虽然不是同一对象, 但是内容是完全相同的


总结几点:

  • 函数里面的this 代表 函数的调用者
  • jquery里面 this代表jquery对象
  • 一般jq回调函数里都代表dom
  • this代表当前的作用域

this是call()的第一个参数
函数被调用时,会作为第一个参数隐式的传入
谁调用函数,this就是谁
如果没人调用 ,this就是window

你可能感兴趣的:(this相关)