我已在此处扫描了相关问题,但无法就如何确定JavaScript对象的类型找到满意的答案。
事实上,下面使用的Object.prototype.toString.call(obj)
技术是我从其中一个主题得到的。但是,似乎没有这项工作。
情景1:
var Person = function(name)
{
this.name = name;
};
var joe = new Person("Joe Bloggs");
console.log(typeof joe); // prints object
console.log(Object.prototype.toString.call(joe)); // still prints [object Object]
问题:如何让它打印Person
?
情景2:
var Person = function(...) { };
var Cat = function() { };
var joe = new Person(...);
var polly = new Cat(...);
问题:如何根据类型区分这两个对象?其中任何一个上的console.log(typeof obj)
或console.log(Object.prototype.toString.call(obj))
都会产生相同的结果。
instanceof
我知道instanceof
但这不是瑞士军刀。它很繁琐,因为它只能用于测试对象是否属于某种类型。我如何知道对象的类型?