返回值:BooleanjQuery.proxy(function,context)

概述

jQuery 1.4 新增。返回一个新函数,并且这个函数始终保持了特定的作用域。

當有事件處理函數要附加到元素上,但他們的作用域實際是指向另一個對象時,這個方法最有用了。此外,最妙的是,jQuery能夠確保即便你綁定的函數是經過jQuery.proxy()處理過的函數,你依然可以傳遞原先的函數來准確無誤地取消綁定。請參考下面的例子。

这个函数还有另一种用法,jQuery.proxy( scope, name )。第一个參數是要设定的作用域对象。第二个參數是将要设置作用域的函数名(必须是第一个作用域对象的一个属性)。

參數

function,contextFunction,ObjectV1.4

function:將要被改變作用域的函數

context:一個object,那個函數的作用域會被設置到這個object上來。

context,nameObject,ObjectV1.4

context:一個object,那個函數的作用域會被設置到這個object上來。

name:改变上下文中的函数名(这个函数必须是前一个參數 'context' 对象的属性)

示例

描述:

強制設置函數的作用域,讓this指向obj而不是#test對象。

HTML 代码:
<div id="test">Click Here!</div>
jQuery 代码:
var obj = {

  name: "John",

  test: function() {

    alert( this.name );

    $("#test").unbind("click", obj.test);

  }

};



$("#test").click( jQuery.proxy( obj, "test" ) );



// 以下代码跟上面那句是等价的:

// $("#test").click( jQuery.proxy( obj.test, obj ) );



// 可以与单独执行下面这句做个比较。

// $("#test").click( obj.test );