2011-07-27 57 views
1

我想在我正在使用的Javascript程序中使用JQuery,但遇到了一些與範圍有關的問題。如何在這個僞代碼中從myfunction1調用myfunction2? (假設新MyConstructor對象已經在某處所創建和myfunction1()被調用)如何在JQuery中調用此函數?

function MyConstructor(){...} 

MyConstructor.prototype.myfunction1 = function(param) { 
    $('#some_element').click(function(){ 
    this.myfunction2('clicked!'); //this doesn't work 
    }); 
} 

MyConstructor.prototype.myfunction2 = function(param) { 

} 

回答

2

myfunction2可以this.myfunction2()MyConstructor任何功能時調用。

在您的情況下,您正試圖呼叫myfunction2在另一個具有不同含義的函數this中。要訪問myfunction2你可以爲任何thisthis.myfunction2是在封閉的範圍,一直延伸到click

var self = this; 
$('#some_element').click(function(){ 
    self.myfunction2('clicked!'); 
}); 

功能參數
var myfunction2 = this.myfunction2; 
$('#some_element').click(function(){ 
    myfunction2('clicked!'); 
}); 
+0

感謝您的快速回復創建變量! – orourkedd