js中hasOwnProperty()方法详解
hasOwnProperty(propertyName)方法 是用来检测属性是否为对象的自有属性,如果是,返回true,否者false; 参数propertyName指要检测的属性名;
用法:object.hasOwnProperty(propertyName) // true/false
hasOwnProperty() 方法是 Object 的原型方法(也称实例方法),它定义在 Object.prototype 对象之上,所有 Object 的实例对象都会继承 hasOwnProperty() 方法。

hasOwnProperty() 只会检查对象的自有属性,对象原形上的属性其不会检测;但是对于原型对象本身来说,这些原型上的属性又是原型对象的自有属性,所以原形对象也可以使用hasOwnProperty()检测自己的自有属性;
let obj = {
name:'张睿',
age:18,
eat:{
eatname:'面条',
water:{
watername:'农夫山泉'
}
}
}
console.log(obj.hasOwnProperty('name')) //true
console.log(obj.hasOwnProperty('age')) //true
console.log(obj.hasOwnProperty('eat')) //true
console.log(obj.hasOwnProperty('eatname')) //false
console.log(obj.hasOwnProperty('water')) //false
console.log(obj.hasOwnProperty('watername')) //false
console.log(obj.eat.hasOwnProperty('eatname')) //true
console.log(obj.eat.hasOwnProperty('water')) //true
console.log(obj.eat.hasOwnProperty('watername')) //false
console.log(obj.eat.water.hasOwnProperty('watername')) //true例子:
function Site(){
this.name = "CodePlayer";
this.url = "http://www.365mini.com/";
this.sayHello = function(){
document.writeln("欢迎来到" + this.name);
};
}
var obj = {
engine: "PHP"
,sayHi: function(){
document.writeln("欢迎访问" + this.url);
}
};
// 使用对象obj覆盖Site本身的prototype属性
Site.prototype = obj;
var s = new Site();
document.writeln( s.hasOwnProperty("name") ); // true
document.writeln( s.hasOwnProperty("sayHello") ); // true
// 以下属性继承自原型链,因此为false
document.writeln( s.hasOwnProperty("engine") ); // false
document.writeln( s.hasOwnProperty("sayHi") ); // false
document.writeln( s.hasOwnProperty("toString") ); // false
// 想要查看对象(包括原型链)是否具备指定的属性,可以使用in操作符
document.writeln( "engine" in s ); // true
document.writeln( "sayHi" in s ); // true
document.writeln( "toString" in s ); // true到此这篇关于js中hasOwnProperty()方法详解的文章就介绍到这了,更多相关js hasOwnProperty()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
在web前端开发中js中的作用域,提升,闭包知识是经常用到的也是很容易混淆的知识点,接下来小编整理了本教程帮助大家学习2016-09-09
DataGear开发基于three.js的3D数据可视化看板的详细代码
DataGear 支持采用原生的HTML、JavaScript、CSS制作数据可视化看板,也支持导入由npm、vite等前端工具构建的前端程序包,这篇文章主要介绍了DataGear制作基于three.js的3D数据可视化看板,需要的朋友可以参考下2024-02-02
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
这篇文章主要介绍了JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法,结合实例形式详细分析了游戏算法中针对碰撞检测的包盒矩形情况下的相关算法原理与操作注意事项,需要的朋友可以参考下2018-12-12
JS选中checkbox后获取table内一行TD所有数据的方法
这篇文章主要介绍了JS选中checkbox后获取table内一行TD所有数据的方法,涉及javascript针对table元素遍历与获取的技巧,需要的朋友可以参考下2015-07-07


最新评论