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 相关文章推荐
xmlHTTP实例
Oct 24 Javascript
js一组验证函数
Dec 20 Javascript
JavaScript 滚轮事件使用说明
Mar 07 Javascript
javascript中createElement的两种创建方式
May 14 Javascript
简单解析JavaScript中的__proto__属性
May 10 Javascript
ECMAScript6轮播图实践知识总结
Aug 17 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
Node.js利用debug模块打印出调试日志的方法
Apr 25 Javascript
Javascript中Promise的四种常用方法总结
Jul 14 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
Jan 13 Javascript
Vuex实现计数器以及列表展示效果
Mar 10 Javascript
opencv 识别微信登录验证滑动块位置
Aug 07 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
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
JavaScript 数组详解
2013/10/10 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
Python里面search()和match()的区别
2016/09/21 面试题
工商管理毕业生推荐信
2013/12/24 职场文书
单位单身证明范本
2014/01/11 职场文书
公司年会演讲稿范文
2014/01/11 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
区域销售大会开幕词
2016/03/04 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android