1. 判断对象是否为空
我们可以使用fon-in
语句来枚举对象的属性,属性被枚举是没有顺序的。使用for-in语句就可以判断对象是否为空,for-in
语句还会枚举对象原型上的属性。当对象是null
或者undefined
时,函数isEptObj()
也返回true,表示对象是空的。
1 | function isEptObj(o) { |
2. 判断对象是否包含某属性
使用对象的hasOwnProperty()
方法可以判断属性是否在实例上。如果该属性不在实例上,会有两种情况:1.该属性在原型上; 2.该属性不在原型上。所以我们还要配合in
语句(for-in
的非循环版本)继续判断该属性,进而可以得出该属性在实例上,在原型上,还是都不在。
1 | s1 = {}; |
3. 总结
配合使用in
语句和hasOwnProperty()
函数,可以判断属性在实例上,在原型上,还是都不在。