浅谈js使用in和hasOwnProperty获取对象属性的区别


Posted in Javascript onApril 27, 2017

in判断的是对象的所有属性,包括对象实例及其原型的属性;

而hasOwnProperty则是判断对象实例的是否具有某个属性。

示例代码:

<script type="text/javascript">
  function Person(){
    }
    Person.prototype.name = "allen";

    var person = new Person();
    console.log(person.hasOwnProperty("name")); //false
    console.log("name" in person); //true
    console.log(person.name); //"allen"

    person.name = "justforse";
    console.log(person.hasOwnProperty("name")); //true
    console.log("name" in person); //true
    console.log(person.name); //"justforuse"

    delete person.name;
    console.log(person.hasOwnProperty("name")); //false
    console.log("name" in person); //true
    console.log(person.name); //"allen"
</script>

以上代码执行的时候,name属性要么是从实例中获取的,要么是来源于原型,所以使用in 来访问 name属性始终返回true;而hasOwnProperty()只在属性存在与对象实例中时才返回true,当删除了实例中的name属性后,就恢复了原型中name属性的连接,所以返回allen。

这篇浅谈js使用in和hasOwnProperty获取对象属性的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
extJs 下拉框联动实现代码
Apr 09 Javascript
EXT窗口Window及对话框MessageBox
Jan 27 Javascript
jquery实现多屏多图焦点图切换特效的方法
May 04 Javascript
18个非常棒的jQuery代码片段
Nov 02 Javascript
jquery解析XML及获取XML节点名称的实现代码
May 18 Javascript
微信小程序如何访问公众号文章
Jul 08 Javascript
vue配置nprogress实现页面顶部进度条
Sep 21 Javascript
通过layer实现可输入的模态框的例子
Sep 27 Javascript
Vuex实现数据增加和删除功能
Nov 11 Javascript
vue实现打地鼠小游戏
Aug 21 Javascript
javascript实现数字时钟效果
Feb 06 Javascript
JS的深浅复制详细
Oct 16 Javascript
微信小程序 wx:for的使用实例详解
Apr 27 #Javascript
微信小程序 动态传参实例详解
Apr 27 #Javascript
微信小程序 本地数据读取实例
Apr 27 #Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 #Javascript
js获取浏览器的各种属性
Apr 27 #Javascript
jQuery鼠标悬停内容动画切换效果
Apr 27 #jQuery
详解axios在node.js中的post使用
Apr 27 #Javascript
You might like
德生PL660的电路分析和打磨
2021/03/02 无线电
PHP 调试工具Debug Tools
2011/04/30 PHP
PHP函数超时处理方法
2016/02/14 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
大专生自我鉴定范文
2013/10/01 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
护理专业自我评价
2015/03/11 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
CSS 伪元素::marker详解
2021/06/26 HTML / CSS