如何知道对象的类型?

时间:2016-10-29 10:33:47

标签: javascript

我已在此处扫描了相关问题,但无法就如何确定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但这不是瑞士军刀。它很繁琐,因为它只能用于测试对象是否属于某种类型。我如何知道对象的类型?

0 个答案:

没有答案