今天在看sharp jQuery的时候看到代理()的使用,感觉很模糊,于是到处找资料。。
我没有理解jQuery的源代码,但我终于理解了代理的用法。复制的代码如下:输入类型='button '值=' Test' id='guoBtn' name='我是按钮的名字'/复制的代码如下:VARobj={name3360 '我是obj的名字',说出name3360Function () {alert (this。姓名);} } $('#guoBtn ')。点击(obj . SayName);//我是按钮的名字。//如果我想访问obj的名称呢?$('#guoBtn ')。点击($。代理人(obj.sayName,obj));//“我是名字”$(“# Guo BTN”)。点击($。obj的代理人。//‘我是obj的名字’从上面proxy(a,b)的用法可以看出,写his参数有两种方式。第一种方式是:a,这是一个函数,b是这个函数的对象所有者。第二种方式是:a,这是一个对象,b是一个字符串,这是a的属性名,这个例子也是夏普jQuery上的一个例子。复制代码如下。ButtonClose/button /div复制代码如下: $ ('# panel ')。fade in(function(){ $(' # panel button '))。单击(function () {$ (this))。fade out();});});虽然按钮消失了,但是面板并没有消失。您可以使用代理来解决这个问题。复制代码如下: $ ('# panel ')。fade in(function(){ varobj=this;$(' #面板按钮')。点击($。proxy(函数(){ $(this))。fade out();},obj));});这样,点击按钮后面板就会消失。个人感觉代理主要是在函数执行的时候用来修改上下文对象。它是在apply的基础上封装的,所以代理是我们自己对jQuery的应用。