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 相关文章推荐
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
Jan 11 Javascript
jQuery contains过滤器实现精确匹配使用方法
Apr 12 Javascript
回车直接实现点击某按钮的效果即触发单击事件
Feb 27 Javascript
浅析jquery的js图表组件highcharts
Mar 06 Javascript
用js闭包的方法实现多点标注冒泡示例
May 29 Javascript
基于jQuery实现自动轮播旋转木马特效
Nov 02 Javascript
Perl Substr()函数及函数的应用
Dec 16 Javascript
jQuery EasyUI 获取tabs的实例解析
Dec 06 Javascript
vue拖拽组件使用方法详解
Dec 01 Javascript
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
javascript实现弹幕墙效果
Nov 28 Javascript
JavaScript实现点击自制菜单效果
Feb 02 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版(4)
2006/10/09 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
js确定对象类型方法
2012/03/30 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
如何利用Fabric自动化你的任务
2016/10/20 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
平面设计师工作职责范文
2013/12/03 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
企业年会主持词
2014/03/27 职场文书
有关环保的标语
2014/06/13 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
学习委员竞选稿
2015/11/20 职场文书