之前文章里总结过:JS如何判断是对象?无论是用constructor原型还是instanceof,或者typeof 方法,或多或少都有一定的缺陷,并不是很完美!

唯一推荐最佳的方案:Object.prototype.toString.call()

function isObject(obj){
	return Object.prototype.toString.call(obj) === "[object Object]"
}

以下是不完美解决方法:

obj.constructor === Object
obj instanceof Object ; //注意数组也为true
typeof obj; // null,{},[]返回都是object

以上就算是对这个问题的总结了,无论面试还是开发中,都建议采用最佳方案处理。