首页前端开发JavaScriptjs属性对象的hasOwnProperty方法的使用

js属性对象的hasOwnProperty方法的使用

时间2024-01-31 18:35:03发布访客分类JavaScript浏览381
导读:收集整理的这篇文章主要介绍了js属性对象的hasOwnProperty方法的使用,觉得挺不错的,现在分享给大家,也给大家做个参考。 Object的hasOwnPRoPErty( 方法返回...
收集整理的这篇文章主要介绍了js属性对象的hasOwnProperty方法的使用,觉得挺不错的,现在分享给大家,也给大家做个参考。

Object的hasOwnPRoPErty()方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性。

判断自身属性是否存在

VAR o = new Object();
    o.prop = 'exists';
function changeO() {
     o.newprop = o.prop;
     delete o.prop;
}
    o.hasOwnProperty('prop');
     // truechangeO();
    o.hasOwnProperty('prop');
     // false

判断自身属性与继承属性

function foo() {
 this.name = 'foo' this.sayHi = function () {
  console.LOG('Say Hi') }
}
foo.prototype.sayGoodBy = function () {
 console.log('Say Good By')}
    let myPro = new foo()console.log(myPro.name) // fooconsole.log(myPro.hasOwnProperty('name')) // trueconsole.log(myPro.hasOwnProperty('toString')) // falseconsole.log(myPro.hasOwnProperty('hasOwnProperty')) // fasleconsole.log(myPro.hasOwnProperty('sayHi')) // trueconsole.log(myPro.hasOwnProperty('sayGoodBy')) // falseconsole.log('sayGoodBy' in myPro) // true

遍历一个对象的所有自身属性

在看开源项目的过程中,经常会看到类似如下的源码。for...in循环对象的所有枚举属性,然后再使用hasOwnProperty()方法来忽略继承属性。

var buz = {
  fog: 'stack'}
    ;
for (var name in buz) {
  if (buz.hasOwnProperty(name)) {
        alert("this is fog (" + name + ") for sure. Value: " + buz[name]);
  }
  else {
        alert(name);
 // toString or something else  }
}
    

注意 hasOwnProperty 作为属性名

JavaScript 并没有保护 hasOwnProperty 属性名,因此,可能存在于一个包含此属性名的对象,有必要使用一个可扩展的hasOwnProperty方法来获取正确的结果:

var foo = {
  hasOwnProperty: function() {
        return false;
  }
,  bar: 'Here be Dragons'}
    ;
    foo.hasOwnProperty('bar');
 // 始终返回 false// 如果担心这种情况,可以直接使用原型链上真正的 hasOwnProperty 方法// 使用另一个对象的`hasOwnProperty` 并且call({
}
    ).hasOwnProperty.call(foo, 'bar');
     // true// 也可以使用 Object 原型上的 hasOwnProperty 属性Object.prototype.hasOwnProperty.call(foo, 'bar');
     // true

参考链接

到此这篇关于js属性对象的hasOwnProperty方法的使用的文章就介绍到这了,更多相关js hasOwnProperty内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • angularjs循环对象属性实现动态列的思路详解
  • JavaScript删除对象的不必要的属性
  • springboot post接口接受json时,转换为对象时,属性都为null的解决
  • JS中轻松遍历对象属性的几种方式
  • JavaScript如何删除对象的某个属性详析
  • JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
  • 通过实例解析javascript Date对象属性及方法
  • Java对象转JSON时动态的增删改查属性详解
  • java jackson 将对象转json时,忽略子对象的某个属性操作
  • javascript对象3个属性特征

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

js

若转载请注明出处: js属性对象的hasOwnProperty方法的使用
本文地址: https://pptw.com/jishu/594327.html
详解JavaScript中的this指向问题 c语言fopen打开文件失败的原因是什么?

游客 回复需填写必要信息