不匹配的类型:对象而不是用户(已创建)

时间:2018-12-03 18:30:49

标签: javascript

这可能会重复,但是由于我没有通过快速搜索找到任何相关的内容,因此我将其发布并最终删除。

我是JavaScript类和构造函数的初学者,在记录对象的确切类型时遇到问题。我的脚本是:

ordy

然后在第二个脚本中:

class User{
    constructor(name, surname){
        this.name= name;
        this.surname= surname;
    }
}  

然后,我希望可以打印 class Room{ constructor(){ this.array=[]; } add(user){ this.array.push(user); } find(user){ var value; for(var i in this.array){ if(this.array[i].name== user){ value= user; } } console.log(value); } } var m= new Room(); var mark= new User("Mark", "M"); var joe= new User("Joe", "J"); var sam= new User("Sam", "S"); var nil= new User("Nil", "N"); m.add(mark); m.add(joe); m.add(sam); m.add(nil);

  

console.log(mark)

,但是类型似乎总是对象。如果我登录m,即“房间预期的对象”,任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我想您正在使用typeof来获取类名,它将在任何类实例上始终返回Object

相反,您可以做的是

console.log(mark.constructor.name); // returns "User"
console.log(m.constructor.name); // returns "Room"

另请参阅this SO answer