gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

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

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

hasOwnProperty() 的语法格式如下:

?
1
object.hasOwnProperty(propertyName);

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

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

示例1 。

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

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

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

示例2 。

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

?
1
2
3
4
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() 方法所能检测的属性范围.

?
1
2
3
4
5
6
7
8
9
10
11
12
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 内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:http://c.biancheng.net/view/5799.html 。

最后此篇关于JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法的文章就讲到这里了,如果你想了解更多关于JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com