浅谈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学习笔记之六 面版
Jan 08 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
Mar 03 Javascript
基于JavaScript实现移动端TAB触屏切换效果
Oct 20 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
Nov 08 Javascript
Asp.Net之JS生成分页条的方法
Nov 23 Javascript
微信小程序实现多宫格抽奖活动
Apr 15 Javascript
用Axios Element实现全局的请求loading的方法
Mar 15 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
使用electron将vue-cli项目打包成exe的方法
Sep 29 Javascript
ES6基础之字符串和函数的拓展详解
Aug 22 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
精通php的十大要点(上)
2009/02/04 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
phpfpm的作用和用法
2019/10/10 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
layui使用label标签的方法
2019/09/14 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
Python字符串切片操作知识详解
2016/03/28 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
python的等深分箱实例
2019/11/22 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
Java模拟试题
2014/11/10 面试题
体育个人工作总结
2015/02/09 职场文书
军训个人总结
2015/03/03 职场文书
运动与健康自我评价
2015/03/09 职场文书
公司员工辞职信范文
2015/05/12 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL
node快速搭建后台的实现步骤
2022/02/18 NodeJs