对象,原型继承和失败的功能

时间:2017-04-06 11:32:21

标签: javascript function object

在尝试转向某些中级/高级Javascript概念时,我遇到了一个问题。在下面的代码中,对象原型和创建的对象似乎运行正常。但是当我尝试在函数'胜利者中使用它们时,结果总是宣告获胜者为第二个参数,无论他们的分数如何。在这里,迈克得分(395)高于彼得(206),应该被宣布为胜利者。此外,控制台正在记录消息" Peter以功能得分()获胜{             return(this.age * 5)+ this.height;         }&#34 ;.

任何有助于了解我做错事的人都会非常感激。



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);




1 个答案:

答案 0 :(得分:1)

替换

var player1score = player1.score;
var player2score = player2.score;

var player1score = player1.score();
var player2score = player2.score();

你必须调用这个函数,如果你只是写player1.score,你将得到函数的主体。

相关问题