浅谈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 相关文章推荐
让iframe子窗体取父窗体地址栏参数(querystring)
Oct 13 Javascript
js将当前时间格式转换成时间搓(自写)
Sep 26 Javascript
jQuery学习笔记之toArray()
Jun 09 Javascript
javascript+html5实现仿flash滚动播放图片的方法
Apr 27 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
May 11 Javascript
教你如何终止JQUERY的$.AJAX请求
Feb 23 Javascript
使用Bootstrap美化按钮实例代码(demo)
Feb 03 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
javascript中call()、apply()的区别
Mar 21 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
Oct 24 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
Sep 25 Javascript
基于vue实现微博三方登录流程解析
Nov 04 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项目的方法
2006/10/09 PHP
php xml实例 留言本
2009/03/20 PHP
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Python数组定义方法
2016/04/13 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
一夜的工作教学反思
2014/02/08 职场文书
交通事故私了协议书
2014/04/16 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
严以律己学习心得体会
2016/01/13 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers