Javascript 对象函数作用域

标签 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?

谢谢!

最佳答案

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

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

关于Javascript 对象函数作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342929/

相关文章:

javascript - 使用 JavaScript 全局函数

javascript - 检查子节点的样式

javascript - 我尝试使用点击函数,该函数使用 'this' 作为通过使用 split '/' )或 lastindexof ('/' )获取 URL 中最后一个 ('/' 之后的值

javascript - 为什么初始化多个变量会导致范围泄漏?

java - Java中永久存储的变量,稍后访问和编辑

javascript - Jquery 范围问题

javascript - 阻止 FancyTree 复选框行突出显示为事件

javascript - 自定义 http header 破坏 CORS

c++ - Visual Assert 的范围问题

java - 允许不同的按钮访问使用取自 jTable 的变量的类的同一实例