首页前端开发JavaScriptJS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法

JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法

时间2024-01-31 20:06:03发布访客分类JavaScript浏览1133
导读:收集整理的这篇文章主要介绍了JS hasOwnProperty( 方法检测一个属性是否是对象的自有属性的方法,觉得挺不错的,现在分享给大家,也给大家做个参考。 JavaScript ha...
收集整理的这篇文章主要介绍了JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法,觉得挺不错的,现在分享给大家,也给大家做个参考。

JavaScript hasOwnPRoPErty() 方法是 Object 的原型方法(也称实例方法),它定义在 Object.prototype 对象之上,所有 Object 的实例对象都会继承 hasOwnProperty() 方法。

hasOwnProperty() 方法用来检测一个属性是否是对象的自有属性,而不是从原型链继承的。如果该属性是自有属性,那么返回 true,否则返回 false。换句话说,hasOwnProperty() 方法不会检测对象的原型链,只会检测当前对象本身,只有当前对象本身存在该属性时才返回 true。

例如,在下面自定义类型中,this.name 就表示对象的自有属性,而原型对象中的 name 属性就是继承属性。

function F() {
     //自定义数据类型  this.name = "自有属性";
}
    F.prototype.name = "继承属性";
    

hasOwnProperty() 的语法格式如下:

object.hasOwnProperty(propertyName);
    

参数说明:propertyName 参数表示要检测的属性名称。

返回值:返回一个布尔值。如果 propertyName 是自有属性,那么返回 true,否则返回 false。

示例1

针对上面的自定义类型,可以实例化对象,然后判定当前对象调用的属性 name 是什么类型。

VAR f = new F();
     //实例化对象console.LOG(f.hasOwnProperty("name"));
     //返回true,说明当前调用的 name是自有属性console.log(f.name);
     //返回字符串“自有属性”

凡是构造函数的原型属性(原型对象包含的属性),都是继承属性,使用 hasOwnProperty() 方法检测时,都会返回 false。但是,对于原型对象本身来说,这些原型属性又是原型对象的自有属性,所以返回值又是 true。

示例2

在下面示例中,演示了 toString() 方法对于 Date 对象来说是继承属性,但是对于 Date 构造函数的原型对象来说,则是它的自有属性。

var d = Date;
    console.log(d.hasOwnProperty("toString"));
     //返回false,说明toString()是Date的自有属性var d = Date.prototype;
    console.log(d.hasOwnProperty("toString"));
     //返回true,说明toString()是Date.prototype属性

hasOwnProperty() 方法只能判断指定对象中是否包含指定名称的属性,无法检查对象原型链中是否包含某个属性,所以能够检测出来的属性必须是对象成员。

示例3

下面示例演示了 hasOwnProperty() 方法所能检测的属性范围。

var o = {
 //对象直接量  o1 : {
 //子对象直接量    o2 : {
 //孙子对象直接量      name : 1 //孙子对象直接量的属性    }
  }
}
    ;
    console.log(o.hasOwnProperty("o1"));
     //返回true,说明o1是o的自有属性console.log(o.hasOwnProperty("o2"));
     //返回false,说明o2不是o的自有属性console.log(o.o1.hasOwnProperty("o2"));
     //返回true,说明o2是o1的自有属性console.log(o.o1.hasOwnProperty("name"));
     //返回false,说明name不是o1的自有属性console.log(o.o1.hasOwnProperty("name"));
     //返回true,说明name不是o2的自有属性

到此这篇关于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核实处理,我们将尽快回复您,谢谢合作!

hasOwnProperty

若转载请注明出处: JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
本文地址: https://pptw.com/jishu/594418.html
C语言有几种注释方式 深入理解javascript中的this

游客 回复需填写必要信息