jQuery.isEmptyObject(obj)
version 1.4 以降
解説
空のオブジェクトかどうかを判別します。
指定したオブジェクトが、プロパティを持っていないかどうかを判別し、持っていない場合はtrue 、一つでも持っている場合はfalse を返します。
内部的には、for ~ in で走査できるプロパティがあるかどうかで判別しています。
Object以外の引数を指定した場合の戻り値は不定です。
引数
戻り値
-
Boolean: プロパティを持たない空オブジェクトの場合は
true 、プロパティを持つオブジェクトの場合はfalse
例
例1:様々な引数を指定し、結果を確認します。
テスト結果 (#test_result)
$.isEmptyObject({}) |
$.isEmptyObject({prop:'aaa'}) |
Object以外を渡してはいけない
jQuery.isEmptyObject()は、for ~ in で走査できるプロパティがあるかどうかを判別します。
よって、Object以外の引数には使用することができません。
例えば、Stringを渡した場合は、FireFoxとIEでは違う結果が返ります。
var str = "abc";
[Firefox 3.6.3]
jQuery.isEmptyObject(str) // false
[IE 8.0.7600]
jQuery.isEmptyObject(str) // true
FireFoxの場合は、文字列にインデックスでアクセスできます。よって上記の場合は3つのプロパティを持つため、falseを返します。
str[0] // 'a'
str[1] // 'b'
str[2] // 'c'
しかし、IEではfor ~ in で走査できるプロパティが何も無いため true を返します。
|