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;
}; |