javascript - 为 PrototypeJS 类的类方法中的函数提供对类成员的访问权限

标签 javascript oop prototypejs

假设我有一个非常简单的 PrototypeJS 类,如下所示:

var Foo = Class.create({
  initialize:  function() {
    this.bar = 'bar';
  },

  dostuff:  function() {
    $$('.enabled').each( function(elem) {
      alert(this.bar);  //FAIL
    });
  }
});

这会失败,因为传递给 .each() 的函数不知道 this 指的是什么。

如何从该函数内部访问类的 bar 属性?

最佳答案

尝试:

dostuff:  function() {
   var that = this;

   $$('.enabled').each( function(elem) {
        alert(that.bar);  //FTW
   });
}

或者,将上下文传递给 each():

dostuff:  function() {
   $$('.enabled').each( function(elem) {
        alert(this.bar);  //FTW
   }, this); // Context
}

关于javascript - 为 PrototypeJS 类的类方法中的函数提供对类成员的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094782/

相关文章:

javascript - Low Pro Prototype DOM Builder 可以在 IE 中运行吗?

javascript - 使用 Prototype/Scriptaculous 预加载图像

c# - 如何在派生类中 DRY 静态重复样板代码?

angular - 如何在 Angular 中覆盖/匹配扩展的CurrencyPipe方法类型

c++ - 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法

jquery - 用于分组迭代的 CSS 选择器

javascript - 构建 JSON 数组并检索其元素的更好方法

javascript - 使用 Octokit js 将内容添加到 Github 中的现有文件

javascript - 如何在 Babel 中使用类函数导入建议功能?

javascript - 在列表之间绘制箭头