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


Posted in Javascript onJanuary 29, 2021

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 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
关于Javascript 的 prototype问题。
Jan 03 Javascript
一个网马的tips实现分析
Nov 28 Javascript
js函数与php函数的区别实例浅析
Jan 12 Javascript
javascript基本语法
May 31 Javascript
Javascript之面向对象--方法
Dec 02 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
Apr 01 Javascript
Vue精简版风格指南(推荐)
Jan 30 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
Oct 10 Javascript
详解50行代码,Node爬虫练手项目
Apr 22 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
May 18 Javascript
vue中axios的二次封装实例讲解
Oct 14 Javascript
Javascript实现打鼓效果
Jan 29 #Javascript
JS实现点击掉落特效
Jan 29 #Javascript
Javascript实现关闭广告效果
Jan 29 #Javascript
Vue 实例中使用$refs的注意事项
Jan 29 #Vue.js
vue 项目@change多个参数传值多个事件的操作
Jan 29 #Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 #Vue.js
聊聊vue 中的v-on参数问题
Jan 29 #Vue.js
You might like
PHP自定义函数收代码
2010/08/01 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP防止跨域提交表单
2013/11/01 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
JavaScript 常用函数
2009/12/30 Javascript
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
Python Socket编程入门教程
2014/07/11 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python求绝对值的三种方法小结
2019/12/04 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Django的CVB实例详解
2020/02/10 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
英文自我鉴定
2013/12/10 职场文书
文明城市创建标语
2014/06/16 职场文书
表扬信范文
2019/04/22 职场文书
导游词之四川武侯祠
2019/10/21 职场文书