在这篇文章中,边肖整理了js中hasOwnProperty的属性和例子的详细说明,有需要的朋友可以关注一下。
1.js不会保护hasOwnProperty不被非法占有。如果这个属性恰好存在于一个对象中,您需要使用一个外部hasOwnProperty函数来获得正确的结果。
2.当检查对象上是否存在属性时,hasOwnProperty是唯一可用的方法。
实例
var foo={
hasOwnProperty: function() {
返回false
},
酒吧:“这里有龙”
};
foo . hasownproperty(' bar ');//总是返回false
//使用其他对象的hasOwnProperty并将其上下文设置为foo
({}).hasOwnProperty.call(foo,' bar ');//真
知识点拓展:
判断自身属性是否存在。
var o=new Object();
o.prop=' exists
函数changeO() {
o . newprop=o . prop;
删除o . prop;
}
o . hasownproperty(' prop ');//真
changeO();
o . hasownproperty(' prop ');//假
判断自身属性和遗传属性
函数foo() {
this.name='foo '
this.sayHi=function () {
console.log('问好')
}
}
foo . prototype . saygoodby=function(){
console.log('告别')
}
让myPro=new foo()
console.log(myPro.name) //foo
console . log(mypro . hasownproperty(' name ')//true
console . log(mypro . hasownproperty(' toString ')//false
console . log(mypro . hasOwnProperty(' hasOwnProperty ')//fasle
console . log(mypro . hasownproperty(' say hi ')//true
console . log(mypro . hasownproperty(' say goodby ')//false
console . log(myPro中的' say goodby ')//true
遍历对象的所有属性。
在看开源项目的过程中,你会经常看到如下这样的源代码。为.in循环遍历对象的所有枚举属性,然后使用hasOwnProperty()方法忽略继承的属性。
var buz={
雾:“堆栈”
};
for(buz中的变量名称){
if (buz.hasOwnProperty(name)) {
alert('这肯定是雾('名字')。值:' buz[name]);
}
否则{
警报(名称);//toString或其他东西
}
}
注意将hasOwnProperty作为属性名。
JavaScript不保护hasOwnProperty属性名,所以它可能存在于包含该属性名的对象中。有必要使用可扩展的hasOwnProperty方法来获得正确的结果:
var foo={
hasOwnProperty: function() {
返回false
},
酒吧:“这里有龙”
};
foo . hasownproperty(' bar ');//总是返回false
//如果担心这种情况,可以直接在原型链上使用真正的hasOwnProperty方法。
//使用另一个对象的hasOwnProperty并调用
({}).hasOwnProperty.call(foo,' bar ');//真
//还可以在对象原型上使用hasOwnProperty属性
object . prototype . hasownproperty . call(foo,' bar ');//真
关于js中hasOwnProperty的属性和例子的详细解释,本文到此为止。有关js中hasOwnProperty的属性和用法的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。