2011-07-27 56 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