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 学习点滴记录
Apr 24 Javascript
获取HTML DOM节点元素的方法的总结
Aug 21 Javascript
JavaScript对内存分配及管理机制详细解析
Nov 11 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
Sep 19 Javascript
JS实现网页Div层Clone拖拽效果
Sep 26 Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
Mar 24 Javascript
js发送短信倒计时的简单实现方法
Sep 08 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
Nov 14 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
解决vue cli使用typescript后打包巨慢的问题
Sep 30 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
Feb 10 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中实现获取随机数组列表的自定义函数
2015/04/02 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
python中如何打包用户自定义模块
2020/09/23 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
Laravel中Kafka的使用详解
2021/03/24 PHP
中专生学习生活的自我评价分享
2013/10/27 职场文书
个人向公司借款协议书
2014/10/09 职场文书
2014年组织部工作总结
2014/11/14 职场文书
委托培训协议书
2014/11/17 职场文书
元宵节寄语大全
2015/02/27 职场文书
老兵退伍感言
2015/08/03 职场文书
导游词之山东八大关
2019/12/18 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python