0

これは私が解決しようとしていることです

    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を学ぶための演習から)

4

2 に答える 2

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;    
    }
}
于 2012-10-29T21:02:55.163 に答える
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 name; var totalScore; var gamesPlayed; var score;)があると思います。この場合、グローバル変数のセットではなく、オブジェクトの変数を操作する必要があることに注意してください。括弧内に示されている変数はすべて、オブジェクトおよびメソッド呼び出しの変数と同じ名前が付けられているため、スコープの維持が困難になります。

于 2012-10-29T21:10:02.040 に答える