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 相关文章推荐
jQuery 跨域访问问题解决方法
Dec 02 Javascript
JavaScript中的一些定位属性[图解]
Jul 14 Javascript
JavaScript实现控制打开文件另存为对话框的方法
Apr 17 Javascript
JS实现的左侧竖向滑动菜单效果代码
Oct 19 Javascript
javascript表单正则应用
Feb 04 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
Mar 29 Javascript
AngularJS页面带参跳转及参数解析操作示例
Jun 28 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
Nov 07 Javascript
json_decode 索引为数字时自动排序问题解决方法
Mar 28 Javascript
我所理解的JavaScript中的this指向
Sep 04 Javascript
JS数组转字符串实现方法解析
Sep 04 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
当海贼王变成JOJO风
2020/03/02 日漫
php5 pdo新改动加载注意事项
2008/09/11 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
php中return的用法实例分析
2015/02/28 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
python zip文件 压缩
2008/12/24 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python语言基本语句用法总结
2019/06/11 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
宿舍使用违章电器检讨书
2014/01/12 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
环保建议书500字
2014/05/14 职场文书
教师个人事迹材料
2014/12/17 职场文书
2015年大学生实习评语
2015/03/25 职场文书
同事打架检讨书
2015/05/06 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
导游词之青岛崂山
2019/12/27 职场文书
MySQL索引失效场景及解决方案
2022/07/23 MySQL