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 相关文章推荐
jquery 事件执行检测代码
Dec 09 Javascript
JS获取URL中的参数数据
Dec 05 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
jQuery学习笔记之jQuery原型属性和方法
Jun 09 Javascript
js去除浏览器默认底图的方法
Jun 08 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
JS弹出窗口的运用与技巧大全
Nov 01 Javascript
js实现右键菜单功能
Nov 28 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
微信小程序扫描二维码获取信息实例详解
May 07 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 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小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
php中strtotime函数性能分析
2016/11/20 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
python查看FTP是否能连接成功的方法
2015/07/30 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Django--权限Permissions的例子
2019/08/28 Python
python随机模块random使用方法详解
2020/02/14 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
幼儿园园长自我鉴定
2013/10/22 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
入队仪式主持词
2015/07/04 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
详解Vue的列表渲染
2021/11/20 Vue.js
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android