1

我想在我正在处理的 Javascript 程序中使用 JQuery,但我遇到了一些范围问题。如何在这个伪代码中从 myfunction1 调用 myfunction2?(假设已经在某处创建了一个新的 MyConstructor 对象并且 myfunction1() 已被调用)

function MyConstructor(){...}

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

MyConstructor.prototype.myfunction2 = function(param) {

}
4

1 回答 1

2

myfunction2可以this.myfunction2()在 的任何函数中使用 when调用MyConstructor

在您的情况下,您试图myfunction2在另一个具有不同含义的函数内部调用this. 要访问,您可以为其中一个或在扩展到函数参数的闭包范围内myfunction2创建一个变量thisthis.myfunction2click

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

或者

var myfunction2 = this.myfunction2; 
$('#some_element').click(function(){
   myfunction2('clicked!');
});
于 2011-07-27T08:31:13.963 回答