如果 this 值是 undefined,就返回 [object Undefined]
如果 this 的值是 null,就返回 [object Null]
让 O 成为 ToObject(this) 的结果
让 class 成为 O 的内部属性 [[Class]]的值
最后返回由 "[object " 和 class 和 “]” 三个部分组成的字符串
通过规范,可以知道调用Object.prototype.toString会返回一个由"[object " 和 class 和 “]” 组成的字符串,而 class 是要判断的对象的内部属性。举个例子:
console.log(Object.prototype.toString.call(undefined)) // [object Undefined]
console.log(Object.prototype.toString.call(null)) // [object Null]
var date = new Date();
console.log(Object.prototype.toString.call(date)) // [object Date]
3、isEmptyObject:判断是否是空对象
function isEmptyObject(obj) {
var name;
for (name in obj) {
return false;
}
return true;
}
console.log(isEmptyObject({}));//true
console.log(isEmptyObject({'name':'lisa'}));//false