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中Object和Function的关系小结
Sep 26 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
Jun 17 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
Sep 17 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
Mar 07 Javascript
基于JavaScript实现自定义滚动条
Jan 25 Javascript
Angularjs实现多图片上传预览功能
Jul 18 Javascript
vue devtools的安装与使用教程
Aug 08 Javascript
layui select获取自定义属性方法
Aug 15 Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 Javascript
js实现网页版贪吃蛇游戏
Feb 22 Javascript
Vuejs通过拖动改变元素宽度实现自适应
Sep 02 Javascript
微信小程序实现拍照和相册选取图片
May 09 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比较多维数组中值的大小排序实现代码
2012/09/08 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
php中__toString()方法用法示例
2016/12/07 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
JavaScript库 开发规则
2009/01/31 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
Python使用redis pool的一种单例实现方式
2016/04/16 Python
浅谈Python peewee 使用经验
2017/10/20 Python
python利用微信公众号实现报警功能
2018/06/10 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
解析python的局部变量和全局变量
2019/08/15 Python
关于python3中setup.py小概念解析
2019/08/22 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
python识别验证码的思路及解决方案
2020/09/13 Python
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
爱的承诺书
2015/01/20 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书