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 相关文章推荐
javascript下有关dom以及xml节点访问兼容问题
Nov 26 Javascript
基于JQuery 滑动与动画的说明介绍
Apr 18 Javascript
基于jQuery Ajax实现上传文件
Mar 24 Javascript
原生js三级联动的简单实现代码
Jun 07 Javascript
jQuery简单获取DIV和A标签元素位置的方法
Feb 07 Javascript
微信小程序获取手机号授权用户登录功能
Nov 09 Javascript
Gulp实现静态网页模块化的方法详解
Jan 09 Javascript
angularjs性能优化的方法
Sep 05 Javascript
Vue 配合eiement动态路由,权限验证的方法
Sep 26 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 Javascript
JS如何实现手机端输入验证码效果
May 13 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
May 28 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
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
php 生成短网址原理及代码
2014/01/23 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
python万年历实现代码 含运行结果
2017/05/20 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
Django REST为文件属性输出完整URL的方法
2017/12/18 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
python自动化发送邮件实例讲解
2021/01/04 Python
皮肤科医师岗位职责
2013/12/04 职场文书
国税会议欢迎词
2014/01/16 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
计算机实训报告范文
2014/11/05 职场文书
2014年协会工作总结
2014/11/22 职场文书
黄河绝恋观后感
2015/06/08 职场文书
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android