zepto:
$.isEmptyObject = function(obj) { var name for (name in obj) return false return true }
$.isEmptyObject({})//true
/* * 检测对象是否是空对象(不包含任何可读属性)。 * 方法既检测对象本身的属性,也检测从原型继承的属性(因此没有使hasOwnProperty)。 */ function isEmpty(obj) { for ( var name in obj) { return false ; } return true ; }; |
这里所说的空对象,到底是 {} 还是 null . 我写了一个测试用例。
var a = {}; a.name = 'realwall' ; console.log(isEmpty(a)); //false console.log(isEmpty({})); //true console.log(isEmpty( null )); //true |
//注意参数为null时无语法错误哦,即虽然不能对null空指针对象添加属性,但可以使用for in 语句。 |
/* * 检测对象是否是空对象(不包含任何可读属性)。 * 方法只既检测对象本身的属性,不检测从原型继承的属性。 */ function isOwnEmpty(obj) { for ( var name in obj) { if (obj.hasOwnProperty(name)) { return false ; } } return true ; }; |