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 相关文章推荐
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
禁止ajax缓存获取程序最新数据的方法
Nov 19 Javascript
jquery自定义滚动条插件示例分享
Feb 21 Javascript
JavaScript限定图片显示大小的方法
Mar 11 Javascript
JavaScript动态改变div属性的实现方法
Jul 22 Javascript
JS获取鼠标坐标位置实例分析
Jan 20 Javascript
浅谈angularJS中的事件
Jul 12 Javascript
JavaScript标准对象_动力节点Java学院整理
Jun 27 Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 09 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
JS实现的雪花飘落特效示例
Dec 03 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
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代码
2012/06/08 PHP
请离开include_once和require_once
2013/07/18 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
php生成静态页面的简单示例
2014/04/17 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
PHP消息队列用法实例分析
2016/02/12 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python3安装Scrapy的方法步骤
2017/11/23 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Python通过format函数格式化显示值
2020/10/17 Python
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
致裁判员加油稿
2014/02/08 职场文书
检讨书范文300字
2015/01/28 职场文书
道德与公民自我评价
2015/03/09 职场文书
公司市场部岗位职责
2015/04/15 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript