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 相关文章推荐
doctype后如何获得body.clientHeight的方法
Jul 11 Javascript
jquery $.ajax入门应用一
Nov 19 Javascript
JavaScript 事件属性绑定带参数的函数
Mar 13 Javascript
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 jQuery
React中使用外部样式的3种方式(小结)
May 28 Javascript
小程序简单两栏瀑布流效果的实现
Dec 18 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 Javascript
深入浅析React中diff算法
May 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
python 简单的多线程链接实现代码
2016/08/28 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python打开windows应用程序的实例
2019/06/28 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
办公室内勤岗位职责范本
2013/12/09 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
离职保密承诺书
2014/05/28 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
商务英语求职信范文
2015/03/19 职场文书
消防宣传标语大全
2015/08/03 职场文书
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技