jQuery的$.proxy()应用示例介绍


Posted in Javascript onApril 03, 2014

今天在看<<锋利的jQuery>>时看到了proxy()的使用,感觉很模糊,就到处找资料.

jQuery的$.proxy()应用示例介绍 

jQuery的源码也没看明白.

不过总算明白了proxy的用法了;

<input type="button" value="测试" id="guoBtn" name="我是按钮的name"/>

var obj = { 
name: "我是obj的name", 
sayName: function () { 
alert(this.name); 
} 
} 
$("#guoBtn").click(obj.sayName); //我是按钮的name 
// 如果我想访问obj的name怎么办呢? 
$("#guoBtn").click($.proxy(obj.sayName,obj));//"我是obj的name" 
$("#guoBtn").click($.proxy(obj, "sayName")); //"我是obj的name"

从上面proxy(a,b)的用法可以看出他的参数有两种写法.

第一种:a是一个function函数,b是这个函数的对象所有者.

第二种:a是一个对象,b是一个字符串,是a的属性名.

还有这个实例就是<<锋利的jQuery>>上的一个例子了.

<div id="panel" style="display:none;"> 
<button>Close</button> 
</div>

$("#panel").fadeIn(function () { 
$("#panel button").click(function () { 
$(this).fadeOut(); 
}); 
});

button虽然消失了,但是panel却没有消失.可以使用proxy来解决这个问题.

$("#panel").fadeIn(function () { 
var obj = this; 
$("#panel button").click($.proxy(function () { 
$(this).fadeOut(); 
}, obj)); 
});

这样单击按钮之后,panel才会消失.

个人感觉proxy最主要就是用来修改函数执行时的上下文对象的.

是在apply的基础上做的封装,所以说proxy就是我们jQuery自己的apply.

Javascript 相关文章推荐
JavaScript 对象模型 执行模型
Dec 06 Javascript
Jquery插件之多图片异步上传
Oct 20 Javascript
在JavaScript中获取请求的URL参数
Dec 22 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
Dec 04 Javascript
基于JQuery实现的Select级联
Jan 27 Javascript
js中window.open打开一个新的页面
Aug 10 Javascript
jquery+php实现滚动的数字特效
Nov 29 Javascript
js 判断数据类型的几种方法
Jan 13 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
May 09 Javascript
js事件触发操作实例分析
Jun 21 Javascript
toString.call()通用的判断数据类型方法示例
Aug 28 Javascript
利用PHP实现递归删除链表元素的方法示例
Oct 23 Javascript
js实现的复制兼容chrome和IE
Apr 03 #Javascript
JS实现局部选择打印和局部不选择打印
Apr 03 #Javascript
javascript实现页面内关键词高亮显示代码
Apr 03 #Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
Apr 03 #Javascript
使用jQuery动态加载js脚本文件的方法
Apr 03 #Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
Apr 03 #Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 #Javascript
You might like
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
javascript简易画板开发
2020/04/12 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
python中去空格函数的用法
2014/08/21 Python
python使用生成器实现可迭代对象
2018/03/20 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
pycharm快捷键汇总
2020/02/14 Python
python Gabor滤波器讲解
2020/10/26 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
影视动画专业个人的自我评价
2013/12/31 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
座谈会主持词
2014/03/20 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
2014年协会工作总结
2014/11/22 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
护士自我推荐信范文
2015/03/24 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL