js中 hasownproperty方法的使用
hasOwnProperty是从Object继承过来的 ,
返回值是一个布尔值,
指出一个对象是否具有指定名称的属性。
object.hasOwnProperty(proName)
ie兼容模式下 老版本的 IE 的 DOM Element 是没有 hasOwnProperty 方法的, window 对象也没有 hasOwnProperty 方法,或者低版本 不支持hasOwnProperty方法。
可以考虑用 Object 对象的 hasOwnProperty。
Object.prototype.hasOwnProperty.call(window, “property”);
Object.prototype.hasOwnProperty.call(element, “property”)。
如果 object 具有指定名称的属性,那么JavaScript中hasOwnProperty函数方法返回 true;反之则返回 false。此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。
var s = new String("JScript");
//所有的String对象都有一个公用的split方法
print(s.hasOwnProperty("split"));//false
print(String.prototype.hasOwnProperty("split"));//true
<script type="text/javascript">
var obj = {
a: 1,
fn: function(){
},
c:{
d: 5
}
};
console.log(obj.hasOwnProperty('a'));//true
console.log(obj.hasOwnProperty('fn'));//true
console.log(obj.hasOwnProperty('c'));//true
console.log(obj.c.hasOwnProperty('d'));//true
console.log(obj.hasOwnProperty('d'));//false, obj对象没有d属性
var str = new String();
console.log(str.hasOwnProperty('substring'));//false
console.log(String.prototype.hasOwnProperty('substring'));//true
</script>
原型上: