javascript - 在 JavaScript 类中调用嵌套函数

标签 javascript jquery function class

我有一个名为“Game”的类,其中有一个名为“inventory”的属性,它调用“Inventory(id)”函数,在该函数中创建并容纳所有库存函数以清除困惑。

我创建了一个新对象

var Game = new Game(body, mainElement, inventoryItems, statusElement);

(它应该是不言自明的,主体正在选择主体标签,主要元素是我的主要区域,状态是状态元素,当然 inventoryItems 是我用来附加我的项目的

    。 ) - 您可以检查 codepen 以更好地理解。

    你需要帮助我的主要代码

    function Game(body, mainElement, inventoryItems, statusElement) {
      this.body = body;
      this.main = mainElement;
      this.inventory = Inventory(inventoryItems);
      this.status = statusElement;
    }
    
    function Inventory(y) {
      this.element = y;
      this.create = function(itemName, equippable, sellable) {
        this.element.append(function(){
          var item = '';
    
          if (itemName.length > 0) {
            item += "<li>" + itemName;
    
            if (sellable) {
              item += "<label>Sell<input type='checkbox' name='sell' onclick='javacript: confirmSell(this);' /></label>";
            }
    
            if (equippable) {
              item += "<label>Equip<input type='checkbox' name='equip' onclick='javacript: equip(this);' /></label>";
            }
          } 
          return item;
        }, this.element);
    
      }
    }
    
    var Game = new Game(body, mainElement, inventoryItems, statusElement);
    Game.inventory(create("Bronze Knife", true, true));
    Game.inventory(create("Ramen Noodles", false, true));
    Game.inventory(create("Boots w/da Fur", true, true));
    

    现在,当我尝试调用 inventory(create(string, bool, bool)); 时,我遇到了有趣的错误

    它创建了第一个项目,所以至少我知道“某事”正在“某种程度上”正确,否则我可能完全错误,应该关闭我的计算机。

    在 chrome 中,我被告知 Bronze Knife inventory.create 告诉我 undefined 不是一个函数。

    非常感谢任何帮助

    编辑:link

最佳答案

Game.inventory 是对象(引用 Inventory 对象(在 Inventory 之前添加 new)),其中包含方法create,所以你可以像这样调用这个方法

  .....
  this.inventory = new Inventory(inventoryItems);
  .....

  var Game = new Game(body, mainElement, inventoryItems, statusElement);

  Game.inventory.create("Bronze Knife", true, true);
  Game.inventory.create("Ramen Noodles", false, true);
  Game.inventory.create("Boots w/da Fur", true, true);

演示:http://codepen.io/tarasyuk/pen/yyJGJK

关于javascript - 在 JavaScript 类中调用嵌套函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27582936/

相关文章:

javascript - 如何判断 Javascript 错误是否为 'blocking' ?

javascript - jQuery Blur() 不适用于 click() 函数

jquery - 如何成功地将 jquery 验证规则应用到 jQuery 自动完成 "input"字段?

JavaScript .toString() 默认值

c - 使用递归函数来计算字母的出现次数

javascript - 使用 JavaScript 处理哈希片段

javascript - Jquery - 查找子ID的类

javascript - 自动完成标签不显示数据

javascript - 为什么这个javascript效果不能在ie7上使用?

r - 创建一个函数以从数据中添加因子列