javascript中hasOwnProperty() 方法使用指南


Posted in Javascript onMarch 09, 2015

概述

hasOwnProperty() 方法用来判断某个对象是否含有指定的自身属性。

语法
obj.hasOwnProperty(prop)

参数

•prop

•要检测的属性名称。

描述

所有继承了 Object.prototype 的对象都会从原型链上继承到 hasOwnProperty 方法,这个方法可以用来检测一个对象是否含有特定的自身属性,和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。

示例

例1:使用 hasOwnProperty 方法判断某对象是否含有特定的自身属性

下面的例子检测了对象 o 是否含有自身属性 prop:

o = new Object();o.prop = 'exists';function changeO() {

  o.newprop = o.prop;

  delete o.prop;}o.hasOwnProperty('prop');   

  // 返回 true

  changeO();

   o.hasOwnProperty('prop');  

   // 返回 false

例2:自身属性和继承属性的区别

下面的例子演示了 hasOwnProperty 方法对待自身属性和继承属性的区别:

o = new Object();o.prop = 'exists';o.hasOwnProperty('prop');            

 // 返回 true

 o.hasOwnProperty('toString');         

 // 返回 false

 o.hasOwnProperty('hasOwnProperty');   

 // 返回 false

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

下面的例子演示了如何在遍历一个对象的所有属性时忽略掉继承属性,注意这里 for..in 循环只会遍历可枚举属性,这通常就是我们想要的,直接使用 Object.getOwnPropertyNames() 方法也可以实现类似的需求。

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    

         }}

例4: hasOwnProperty 方法有可能被遮蔽

如果一个对象拥有自己的 hasOwnProperty 方法, 则原型链上的同名方法会被遮蔽(shadowed):

var foo = {

    hasOwnProperty: function() {

        return false;

    },

    bar: 'Here be dragons'};foo.hasOwnProperty('bar'); 

    // 始终返回 false

    // 如果担心这种情况,可以直接使用原型链上真正的 hasOwnProperty 方法

    ({}).hasOwnProperty.call(foo, 'bar'); 

    // true

    Object.prototype.hasOwnProperty.call(foo, 'bar'); 

    // true

以上就是本文所述的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
javascript对JSON数据排序的3个例子
Apr 12 Javascript
AngularJS入门教程之服务(Service)
Jul 27 Javascript
js+canvas实现动态吃豆人效果
Mar 22 Javascript
js下载文件并修改文件名
May 08 Javascript
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
解决Webpack 热部署检测不到文件变化的问题
Feb 22 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
Aug 10 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
Sep 07 Javascript
vue watch关于对象内的属性监听
Apr 22 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 #Javascript
jQuery读取XML文件内容的方法
Mar 09 #Javascript
JQuery动态添加和删除表格行的方法
Mar 09 #Javascript
Python脚本后台运行的几种方式
Mar 09 #Javascript
JS控制表格实现一条光线流动分割行的方法
Mar 09 #Javascript
JS实现点击按钮自动增加一个单元格的方法
Mar 09 #Javascript
JS实现网页表格自动变大缩小的方法
Mar 09 #Javascript
You might like
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
对于Python的框架中一些会话程序的管理
2015/04/20 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
Python中的引用知识点总结
2019/05/20 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
Python的垃圾回收机制详解
2019/08/28 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
用python实现名片管理系统
2020/06/18 Python
Python tkinter实现日期选择器
2021/02/22 Python
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
竞争上岗演讲稿
2014/01/05 职场文书
初中学生期末评语
2014/04/24 职场文书
会计系毕业生求职信
2014/05/28 职场文书
小学教师培训方案
2014/06/09 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
员工表扬信怎么写
2015/05/05 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL