如何在JQuery中调用此函数?

时间:2011-07-27 08:24:14

标签: javascript jquery javascript-objects

我想在我正在使用的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) {

}

1 个答案:

答案 0 :(得分: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!');
});