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)); //falseconsole.log(isEmpty({})); //trueconsole.log(isEmpty(null)); //true |
//注意参数为null时无语法错误哦,即虽然不能对null空指针对象添加属性,但可以使用for in 语句。 |
/* * 检测对象是否是空对象(不包含任何可读属性)。 * 方法只既检测对象本身的属性,不检测从原型继承的属性。 */function isOwnEmpty(obj){ for(var name in obj) { if(obj.hasOwnProperty(name)) { return false; } } return true;}; |