2011-05-20 55 views
1

如何從jQuery函數中引用JavaScript中的父類「類」方法?例如:從jQuery函數中引用Javascript的「類」方法

$Object.prototype.TestFunction = function(arg){ 
    alert(arg); 
} 

$Object.prototype.foo = function(){ 
    $(something).click(function(){ 
     this.TestFunction("Hello"); //Obviously doesn't work. 
    }); 
} 

我有數據預測的集,需要多套和結果的頁面,這就是爲什麼我建立了一個對象來處理它認爲被操縱。但是,當我使用任何「jQuery」並嘗試從內部引用對象屬性或方法時,它顯然不起作用。

這可能嗎?

非常感謝您的時間和精力,提前。

回答

3

我的首選方法是使用$ .proxy:

 
$Object.prototype.foo = function(){ 
    $(something).click($.proxy(this.TestFunction,this); 
}; 

它是清潔,也穿過任何參數(如事件)的處理函數。

+0

+1,我學到了新東西。 – 2011-05-20 20:16:38

4

簡單地將this分配給一個變量,並在您的閉包引用變量。

$Object.prototype.foo = function(){ 
    var that = this; //<--here 
    $(something).click(function(){ 
     that.TestFunction("Hello"); 
    }); 
}; 

Example on jsfiddle

相關問題