gpt4 book ai didi

javascript - 对象、原型(prototype)继承和失败的函数

转载 作者:行者123 更新时间:2023-12-03 04:36:57 24 4
gpt4 key购买 nike

在尝试继续学习一些中级/高级 Javascript 概念时,我遇到了问题。在下面的代码中,对象原型(prototype)和创建的对象似乎运行良好。但是当我尝试在函数“winner”中使用它们时,结果总是在第二个参数通过时声明获胜者,无论他们的分数如何。在这里,Mike 的得分 (395) 高于 Peter (206),应该被宣布为获胜者。此外,控制台正在记录消息“Peter 获胜,得分为 function () { 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);

最佳答案

替换

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

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

你必须调用该函数,如果你只编写player1.score,你将获得函数的主体。

关于javascript - 对象、原型(prototype)继承和失败的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43253976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com