Javascript 为什么是";口渴“;方法对我的课不起作用?

Javascript 为什么是";口渴“;方法对我的课不起作用?,javascript,Javascript,我不确定为什么口渴法没有返回真值。没有更多的话要说,但函数本身对我来说似乎很好,但却抛出了一个类型错误 class Vampire { constructor(name, pet) { this.name = name; if (pet === undefined) { this.pet = 'bat'; } else { this.pet

我不确定为什么口渴法没有返回真值。没有更多的话要说,但函数本身对我来说似乎很好,但却抛出了一个类型错误

  class Vampire {
        constructor(name, pet) {
            this.name = name;
            if (pet === undefined) {
                this.pet = 'bat';
            } else {
                this.pet = pet;
            }
        }
        thirsty() {
            return true
        };
    }
它没有通过这个测试:

  it('should have vampire return true if thirsty', function() {
    var vampire = new Vampire('Andy');
    assert.equal(vampire.thirsty, true);
  });


你不能这样调用吸血鬼。口渴,因为口渴不是一个静态方法。您需要创建
类的新实例
,或者将
口渴
方法声明为静态:

静态方式:

class吸血鬼{
建造师(姓名、宠物){
this.name=名称;
如果(pet==未定义){
this.pet='bat';
}否则{
this.pet=pet;
}
}
静态口渴(){//声明为静态
返回真值
};
}

console.log(吸血鬼口渴())
您不能这样调用
吸血鬼。口渴
,因为
口渴
不是静态方法。您需要创建
类的新实例
,或者将
口渴
方法声明为静态:

静态方式:

class吸血鬼{
建造师(姓名、宠物){
this.name=名称;
如果(pet==未定义){
this.pet='bat';
}否则{
this.pet=pet;
}
}
静态口渴(){//声明为静态
返回真值
};
}

console.log(吸血鬼口渴())只要创建类的新实例,它就可以正常工作:

class吸血鬼{
建造师(姓名、宠物){
this.name=名称;
如果(pet==未定义){
this.pet='bat';
}否则{
this.pet=pet;
}
}
口渴的{
返回真值
};
}
var pet=新吸血鬼('boo');

console.log(pet.quirty())只要创建类的新实例,它就可以正常工作:

class吸血鬼{
建造师(姓名、宠物){
this.name=名称;
如果(pet==未定义){
this.pet='bat';
}否则{
this.pet=pet;
}
}
口渴的{
返回真值
};
}
var pet=新吸血鬼('boo');

console.log(pet.quirty())在您的测试中,您错误地比较了函数

assert.equal(吸血鬼、口渴、真)

您没有调用口渴
并检查返回值

您需要像这样调用该方法:


assert.equal(吸血鬼口渴(),true)

在测试中,您错误地比较了函数
quirty
true

assert.equal(吸血鬼、口渴、真)

您没有调用口渴
并检查返回值

您需要像这样调用该方法:



assert.equal(吸血鬼口渴(),true)

但仍会抛出一个类型错误。
错误到底说明了什么?你如何使用这个类?我无法重现你的错误。似乎工作正常
console.log(new Vampire('a','b').quirty())
@tkausl
Uncaught TypeError:Vampire.quirty在:1:9不是一个函数,它只是为了一个“挑战”,我正在做的只是让我创建一个名为quirty的方法,如果调用该方法,该方法将返回true。那么你还没有创建吸血鬼的(实例)?@tkausl抱歉,是的,我没有注意到。。。当我创建它的实例时,它确实起作用。。。由于某种原因,它不工作,在这个摩卡/柴测试的东西,我需要运行它通过。。。哦,好吧。
但是抛出了一个类型错误。
错误到底说了什么?你如何使用这个类?我无法重现你的错误。似乎工作正常
console.log(new Vampire('a','b').quirty())
@tkausl
Uncaught TypeError:Vampire.quirty在:1:9不是一个函数,它只是为了一个“挑战”,我正在做的只是让我创建一个名为quirty的方法,如果调用该方法,该方法将返回true。那么你还没有创建吸血鬼的(实例)?@tkausl抱歉,是的,我没有注意到。。。当我创建它的实例时,它确实起作用。。。由于某种原因,它不工作,在这个摩卡/柴测试的东西,我需要运行它通过。。。哦,好吧。傻尼克,可怜的弗拉德是一只狗,不是吸血鬼。@FrankerZ他是一个叫弗拉德的吸血鬼,带着一只宠物狗:PSilly Nick,可怜的弗拉德是一只狗,不是吸血鬼。@FrankerZ他是一个叫弗拉德的吸血鬼,带着一只宠物狗:呸,是的,我也试过把它做成财产。。。从我身边溜走了。。。谢谢你的帮助!当有疑问时,
console.log()
。你会看到,
吸血鬼。口渴
是一个函数,不是真的,这应该表明你调用它的方式有问题。啊,是的,我也尝试过让它成为属性。。。从我身边溜走了。。。谢谢你的帮助!当有疑问时,
console.log()
。你会看到,
吸血鬼.口渴
是一个函数,不是真的,这应该表明你如何调用它有问题。