【问题标题】:JavaScript class syntax? [duplicate]JavaScript 类语法? [复制]
【发布时间】:2014-11-26 21:23:22
【问题描述】:

在我的代码中,我希望能够在Game 下创建可以这样调用的函数:

Game.Player.iJava.showNum() 哪个会返回'5' 和 Game.Player.Bill.showNum() 这将返回“120”

我对能够这样称呼它的语法感到困惑,这就是我目前所拥有的 抱歉,如果我的描述含糊不清,我会尽力解释这一点,但我的英语不是很好

谢谢,这就是我目前所拥有的

        var Username = 'iJava';
        function Game(Object, Attribute, Number) {
            this.Object = Object;
            this.Attribute = Attribute;
            this.Number = Number
            this.showNum= function() { return Number;}
            this.Create = function() { if (Object == "Player") { console.log("Created user "+Attribute) } };
        }
        function Player(Name, Num) {
            new Game("Player", Name, Num);
        }
        var User = new Player(Username, 5)
        var Bill = new Player("Bill", 120)

【问题讨论】:

  • @JeremyD:不,他们不是。
  • @FelixKling 够公平的。我不明白这个问题。 iJava 是一个字符串,你为什么要在它上面调用一个函数。游戏也没有 Player 属性。这非常令人困惑。
  • @JeremyD:请注意,OP 调用new Game("Player", Name, Num);,而Game 定义为function Game(Object, Attribute, Number) { this.Object = Object; ... }。所以我假设 Objectvalue 实际上应该用作属性名称。当然,他仍然必须将另一个对象分配给this[Object],而不是Object 本身。但我想这是问题的核心。

标签: javascript class


【解决方案1】:

您可以将函数以及任何东西作为其他对象的属性:

function Game() { ... }
function Player() { ... }

Game.Player = Player;
Game.Player.Bill = new Game.Player("Bill", 120);

【讨论】:

  • 谢谢,但是当 User = "Name" 时我怎样才能创建像 Game.Player.User 这样的新用户,并且你用 Game.Player.Name 来调用它?
猜你喜欢
  • 1970-01-01
  • 2013-10-19
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 2015-10-17
  • 2011-02-02
  • 2017-05-14
相关资源
最近更新 更多