如何判断JavaScript中的值是否为Object Literal? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

在我对对象类型判断的有限经验中,我不知道如何判断一个值是否是JavaScript中的Object Literal?我在网上搜索了很长时间。但没有用。请帮忙或试着提出一些想法如何实现这一点。谢谢!

解决方案是:我们知道,我们可以使用'typeof'或'instanceof'来判断值的类型。例如,要判断一个数组,我们可以使用:

var array=[0,1,2,3,4];
if(Object.prototype.toString.call(array)==='[object Array]'){
    alert('This is an Array!');
}

但现在我想检查一个值是否像这样的Object Literal:

var obj={
    a:2
};

怎么判断呢?我的方式是:

if(obj["__proto__"]["constructor"]===Object){
    alert("This is Object Literal");
}

我担心这种方式是错误的。

javascript arrays
1个回答
0
投票

您可以通过将constructor属性与Object匹配来检查,如下所示:

var obj={
    a:2
};
console.log(obj.constructor == Object); // true

var arr = [1,2,3];
console.log(arr.constructor == Object); // false
© www.soinside.com 2019 - 2024. All rights reserved.