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 相关文章推荐
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
Mar 29 Javascript
IE的fireEvent方法概述及应用
Feb 22 Javascript
javascript去掉前后空格的实例
Nov 07 Javascript
AngularJS动态生成div的ID源码解析
Aug 29 Javascript
js转html实体的方法
Sep 27 Javascript
阿里云ecs服务器中安装部署node.js的步骤
Oct 08 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
浅谈jQuery before和insertBefore的区别
Dec 04 Javascript
js实现二级菜单点击显示当前内容效果
Apr 28 Javascript
React中this丢失的四种解决方法
Mar 12 Javascript
javascript随机变色实例代码
Oct 15 Javascript
VSCode搭建React Native环境
May 07 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
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
java必学必会之static关键字
2015/12/03 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
python多线程方式执行多个bat代码
2016/06/07 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python KMeans聚类问题分析
2018/02/23 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
英国综合网上购物商城:The Hut
2018/07/03 全球购物
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
英国钻石公司:British Diamond Company
2020/02/16 全球购物
工程造价专业大专生求职信
2013/10/06 职场文书
《春笋》教学反思
2014/04/15 职场文书
难忘的一课教学反思
2014/04/30 职场文书
新教师个人工作总结
2015/02/06 职场文书
法定代表人资格证明书
2015/06/18 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
MySQL数据库简介与基本操作
2022/05/30 MySQL