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 相关文章推荐
载入进度条 效果
Jul 08 Javascript
javascript Zifa FormValid 0.1表单验证 代码打包下载
Jun 08 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
Nov 14 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
May 28 Javascript
js实现网站最上边可关闭的浮动广告条代码
Sep 04 Javascript
Jquery实现仿京东商城省市联动菜单
Nov 19 Javascript
JavaScript实现99乘法表及隔行变色实例代码
Feb 24 Javascript
JavaScript中用let语句声明作用域的用法讲解
May 20 Javascript
jQuery基础知识点总结(DOM操作)
Jun 01 Javascript
微信小程序 跳转传递数据的实例
Jul 06 Javascript
AngularJS中table表格基本操作示例
Oct 10 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
Nov 03 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
一个简单实现多条件查询的例子
2006/10/09 PHP
第八节--访问方式
2006/11/16 PHP
php 图片上传类代码
2009/07/17 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
修改file按钮的默认样式实现代码
2013/04/23 Javascript
再谈JavaScript线程
2015/07/10 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
python实现聚类算法原理
2018/02/12 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
详解python datetime模块
2020/08/17 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
宝信软件JAVA工程师面试经历
2012/08/19 面试题
后勤园长自我鉴定
2013/10/17 职场文书
2013年入党人员的自我鉴定
2013/10/25 职场文书
税务专业毕业生自荐信
2013/11/10 职场文书
高一英语教学反思
2014/01/22 职场文书
质检员岗位职责
2015/02/03 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
《三国志》赏析
2019/08/27 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python
MySQL 原理与优化之Update 优化
2022/08/14 MySQL