0
嘗試轉向某些中級/高級Javascript概念時,遇到了問題。在下面的代碼中,對象原型和創建的對象似乎運行良好。但是,當我嘗試在函數'優勝者'中使用它們時,無論其得分如何,結果總是宣告勝利者爲第二個參數。在這裏,邁克的得分(395)高於彼得(206),應該被宣佈爲獲勝者。此外,控制檯正在記錄消息「彼得贏得功能分數(){ return(this.age * 5)+ this.height; }」。對象,原型繼承和失敗函數
任何幫助瞭解我做錯了什麼將不勝感激。
var player = {
name: 'Default',
age: 'Default',
height: 'Default',
score: function() {
return (this.age * 5) + this.height;
}
}
var Mike = Object.create(player);
Mike.name = 'Mike';
Mike.age = 67;
Mike.height = 60;
var Peter = Object.create(player);
Peter.name = 'Peter';
Peter.age = 30;
Peter.height = 56;
var winner = function(player1, player2) {
var player1score = player1.score;
var player2score = player2.score;
if(player1score > player2score) {
console.log(player1.name + ' wins with a score of ' + player1.score);
} else {
console.log(player2.name + ' wins with a score of ' + player2.score);
}
}
winner(Mike, Peter);
winner(Peter, Mike);
由於得分是一個函數,所以您需要像這樣調用它:'player1.score()' – hola