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代码
Mar 16 Javascript
javascript面向对象之二 命名空间
Feb 08 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
Aug 05 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
Jan 04 Javascript
vue axios 二次封装的示例代码
Dec 08 Javascript
js replace替换字符串同时替换多个方法
Nov 27 Javascript
javascript事件循环event loop的简单模型解释与应用分析
Mar 14 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
Jul 11 Javascript
详解Vue的列表渲染
Nov 20 Vue.js
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
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
xss文件页面内容读取(解决)
2010/11/28 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
Python yield使用方法示例
2013/12/04 Python
基于Python实现文件大小输出
2016/01/11 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
django使用LDAP验证的方法示例
2018/12/10 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
使用Python函数进行模块化的实现
2019/11/15 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
Html5自定义字体解决方法
2019/10/09 HTML / CSS
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
打造高效课堂实施方案
2014/03/22 职场文书
推荐信怎么写
2014/05/09 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
入党团支部推荐意见
2015/06/02 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL