这可能会重复,但是由于我没有通过快速搜索找到任何相关的内容,因此我将其发布并最终删除。
我是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,即“房间预期的对象”,任何人都可以帮忙吗?
答案 0 :(得分:0)
我想您正在使用typeof
来获取类名,它将在任何类实例上始终返回Object
。
相反,您可以做的是
console.log(mark.constructor.name); // returns "User"
console.log(m.constructor.name); // returns "Room"
另请参阅this SO answer