javascript
  • jquery
  • class
  • 2014-10-02 72 views -2 likes 
    -2

    在我的代碼中,我希望能夠通過 a)選擇某些用戶的Player對象。與createPlayer("Test")創建用戶,然後能夠調用用戶提供Game.Player.Test,這樣我可以做的事情,如記錄他們的名字與console.log(Game.Player.Test.Name)通過用戶名從Player類中選擇某些用戶?

    這是我到目前爲止,我的問題是低於幾乎所有findPlayer,這是返回undefined

     var User = 'iJava'; 
         var Players = []; 
         function Game(Object, Name) { 
          this.Type = Object 
          this.Name = Name; 
         } 
         function Player(Username) { 
          this.Name = Username    
          this.getInfo = new Game("Player", this.Name) 
          this.Type = this.getInfo.Type 
          this.Move = function() { console.log("Moved",this.Name) } 
         } 
         function createPlayer(Username) { 
          if ($.inArray(Username, Players) == -1) { 
           new Game.newPlayer(Username) 
           Players.push(Username); 
           console.log("Created user "+Username+"!"); 
          } 
          else { 
           console.log("The user "+Username+" already exists!"); 
          } 
         } 
         function findPlayer(Username) { 
          return Game.getPlayer.Username; 
         } 
         Game.getPlayer = Player; 
         Game.newPlayer = Player 
         Game.Player = function(name) { findPlayer(name) }; 
         createPlayer(User); 
    

    回答

    1

    你可以使用這樣的東西。

    var Game = {Players: []}; 
    
    Game.Player = function Player (name) { 
        if (this.constructor[name]) 
         throw new Error("A player with this name already exists"); 
    
        // Store player on constructor for fast access, as well as in 
        // Game.Players array to easily iterate over all players. 
        Game.Players.push(this.constructor[name] = this); 
        this.Name = name; 
    } 
    // Use prototype to define object methods only once 
    Game.Player.prototype.Move = function() { 
        console.log("Moving player: '" + this.Name + "'"); 
    } 
    
    new Game.Player("MyPlayer"); 
    console.log(Game.Player.MyPlayer); 
    
    +0

    謝謝,工程很好,更簡單! – Sam 2014-10-02 00:29:27

    相關問題