2012-10-29 79 views
0

與另一個函數的參數1個函數給出一個參數,這就是我想解決掉如何比較在Javascript

var name; 
    var totalScore; 
    var gamesPlayed; 
    var player; 
    var score; 

    //First, the object creator 
    function makeGamePlayer(name,totalScore,gamesPlayed) { 
     //should return an object with three keys: 
     // name 
     // totalScore 
     // gamesPlayed 
     o = { 
      'name' : name, 
      'totalScore' : totalScore, 
      'gamesPlayed' : gamesPlayed 
     }; 
     return o; 
    } 

    //Now the object modifier 
    function addGameToPlayer(player,score) { 
     //should increment gamesPlayed by one 
     //and add score to totalScore 
     //of the gamePlayer object passed in as player 
     if(player == name) { 
      gamesPlayed += 1; 
      totalScore += score;  
     } 

    } 

但如果我用,如果現在應該是別的東西的第2個功能...我如何比較這2個? (其從練習學習JS)對象的

回答

2

引用屬性以點:

function addGameToPlayer(player,score) { 

    // this will compare player's name to global var name 
    if(player.name === name) { 
     player.gamesPlayed += 1; 
     player.totalScore += score;  
    } 
} 
2

我重視的是如何或許應該基於你的樣品工作的jsfiddle例子。

//First, the object creator 
function makeGamePlayer(name, totalScore, gamesPlayed) { 
//should return an object with three keys: 
// name 
// totalScore 
// gamesPlayed 
o = { 
    'name' : name, 
    'totalScore' : totalScore, 
    'gamesPlayed' : gamesPlayed 
}; 
return o; 
} 

//Now the object modifier 
function addGameToPlayer(player,score) { 
    //should increment gamesPlayed by one 
    //and add score to totalScore 
//of the gamePlayer object passed in as player 
player.gamesPlayed += 1; 
player.totalScore += score; 
} 

var player = makeGamePlayer("Player 1", 0, 0); 
addGameToPlayer(player, 10); 

alert(player.name + " Played " + player.gamesPlayed + " Total Score Of: " + player.totalScore) 

http://jsfiddle.net/brBx9/

我也覺得你有一些範圍外的變量(VAR名; VAR totalScore; VAR gamesPlayed; VAR得分;)請記住,你是想操縱的對象變量在這種情況下,不是一組全局變量。括號中指示的變量將使得維護範圍變得困難,因爲它們的名稱與您的對象和方法調用中的變量名稱相同。