所谓"空对象",即不包括任何可枚举(自定义)的属性。简而言之,就是该对象没有属性可以通过for...in
迭代。
该函数属于全局jQuery
对象。
语法
jQuery 1.4 新增该静态函数。
jQuery.isEmptyObject( object )
参数
参数 | 描述 |
---|---|
object | 任意类型需要进行判断的任意值。 |
注意:该参数应该始终是一个纯粹的JavaScript Object
,因为其他类型(例如:DOM元素、原始字符串/数字、宿主对象)可能无法获得跨浏览器的一致结果。要确定一个对象是否是一个纯粹的JavaScript Object,你可以使用$.isPlainObject()方法。
返回值
jQuery.isEmptyObject()
函数的返回值为Boolean类型,如果指定的参数是空对象,则返回true
,否则返回false
。
示例&说明
jQuery.isEmptyObject()
是通过for...in
循环来进行判断,其源代码部分如下:
isEmptyObject: function( obj ) {
var name;
for ( name in obj ) {
return false;
}
return true;
}
jQuery.isEmptyObject()
函数的jQuery示例代码如下:
//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
document.body.innerHTML += "<br/>" + html;
} w( $.isEmptyObject( { } ) ); // true
w( $.isEmptyObject( new Object() ) ); // true w( $.isEmptyObject( [ 0 ] ) ); // false
w( $.isEmptyObject( { name: "CodePlayer"} ) ); // false
w( $.isEmptyObject( { sayHi: function(){} } ) ); // false
function User(){
}
User.prototype.word = "Hello";
// 自定义的原型对象上的属性也是可枚举的
w( $.isEmptyObject( new User() ) ); // false /* 尽管在没有为空数组、Function、Number等内置对象添加自定义属性的情况下,它们也是不可枚举的,但是不推荐这么做。因为isEmptyObject()的参数应该始终是一个纯粹的Object */ // 数组中没有元素,也无法通过for...in迭代出属性
w( $.isEmptyObject( [ ] ) ); // true
// Function、Number、String等内置对象也无法通过for...in迭代出属性
w( $.isEmptyObject( function(){ alert("xxx") } ) ); // false