Javascript-将变量作为方法传递

时间:2017-01-01 06:09:50

标签: javascript variables methods

我的问题是尝试将通过提示定义的变量传递给对象方法。在我的代码结束时,我尝试传递变量" 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();
};

1 个答案:

答案 0 :(得分:2)

您在脚本末尾使用了错误的值(house)。 house是字符串值,而不是House的实例。

gryffindorHouse的实例(使用new House()创建),因此您需要使用它。

您希望最后三行是这样的:

if(house === "gryffindor") {
    gryffindor.teamPick();
};