我的问题是尝试将通过提示定义的变量传递给对象方法。在我的代码结束时,我尝试传递变量" house"进入" .teamPick"我的类构造函数中的方法但不行。如果我控制台.log(房子)它打印' gryffindor'但是当我试图传递house.teamPick()时,我得到一个错误说" house.teamPick()不是函数。"我在我的智慧结束。
function House(color,broom) {
this.color= color;
this.broom= broom;
this.teamPick= function() {
alert("Throw on your"+" "+ this.color + " " + "robes, jump on your \n" + this.broom + ", " + "and let's play some Quidditch!")
};
};
var gryffindor= new House('red', 'Firebolt');
var house= prompt('What team do you choose?').toLowerCase();
if(house=== "gryffindor") {
house.teamPick();
};
答案 0 :(得分:2)
您在脚本末尾使用了错误的值(house
)。 house
是字符串值,而不是House
的实例。
gryffindor
是House
的实例(使用new House()
创建),因此您需要使用它。
您希望最后三行是这样的:
if(house === "gryffindor") {
gryffindor.teamPick();
};