浅谈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 相关文章推荐
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
jquery学习笔记二 实现可编辑的表格
Apr 09 Javascript
JS 实现导航栏悬停效果(续2)
Sep 24 Javascript
js简单的弹出框有关闭按钮
May 05 Javascript
javascript二维数组转置实例
Jan 22 Javascript
js中最容易被忽视的事件问题大总结
May 15 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
Nov 06 Javascript
自定义require函数让浏览器按需加载Js文件
Nov 24 Javascript
关于Ajax的原理以及代码封装详解
Sep 08 Javascript
详解element-ui中form验证杂记
Mar 04 Javascript
JavaScript Math对象和调试程序的方法分析
May 13 Javascript
JS简易计算器实例讲解
Jun 30 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
yii2.0实现创建简单widgets示例
2016/07/18 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
require.js中的define函数详解
2017/07/10 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
构建Python包的五个简单准则简介
2015/06/15 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
python写一个md5解密器示例
2018/02/23 Python
简单谈谈python基本数据类型
2018/09/26 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
Python实现仿射密码的思路详解
2020/04/23 Python
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
会计求职信范文
2014/05/24 职场文书
护士求职信范文
2014/05/24 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
美术教师求职信范文
2015/03/20 职场文书
运动会开幕式致辞
2015/07/29 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis