jquery $.proxy的使用

原文:http://www.jb51.net/article/48704.htm  


***************************************************************************************************************************************************************************

jQuery.proxy(),接受一个函数,然后返回一个新函数,并且这个新函数始终保持了特定的上下文(context )语境。

  • jQuery.proxy( function, context )

    function将要改变上下文语境的函数。

    context函数的上下文语境(`this`)会被设置成这个 object 对象。

  • jQuery.proxy( context, name )

    context函数的上下文语境会被设置成这个 object 对象。

    name将要改变上下文语境的函数名(这个函数必须是前一个参数 ‘context’ 对象的属性)

这个方法通常在向一个元素上附加事件处理函数时,上下文语境实际是指向另一个对象的情况下使用。

下面请看一个实例:

<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的属性名. 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值