Javascript对象函数范围

时间:2010-12-03 06:08:15

标签: javascript scope

假设我有一个班级:

var asdf = new Class({
  myFunction: function () {
    //some stuff here
  },
  anotherFunction: function() {
    globalObject.dosomethingandusecallback( 
      function() { // this is the callback
        //how do I call myFunction() here? I can't seem to get it to work?
      }
    );
  }
});

在尝试在回调函数的定义中调用myFunction时,我似乎遇到了一些范围问题。我在这里错过了什么?我认为在这种情况下它应该可以访问myFunction吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

this关键字复制到回调函数之外的变量中,并在回调中使用该变量:

anotherFunction: function() {
  var self = this;
  globalObject.dosomethingandusecallback( 
    function() { // this is the callback
      self.myFunction();
    }
  );
}