浅谈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 相关文章推荐
jQuery的attr与prop使用介绍
Oct 10 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
Oct 23 Javascript
jQuery实现鼠标选文字发新浪微博的方法
Apr 02 Javascript
jquery动态添加文本并获取值的方法
Oct 12 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
Oct 14 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Dec 15 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
jQuery实现动态删除LI的方法
May 30 jQuery
vue路由传参的基本实现方式小结【三种方式】
Feb 05 Javascript
微信小程序中的上拉、下拉菜单功能
Mar 13 Javascript
详细分析vue表单数据的绑定
Jul 20 Javascript
js实现简单的点名器随机色实例代码
Sep 20 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
mysql 搜索之简单应用
2007/04/27 PHP
PHP用GD库生成高质量的缩略图片
2011/03/09 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
使用angular写一个hello world
2015/01/23 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python清除字符串里非字母字符的方法
2015/07/02 Python
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
童装店创业计划书
2014/01/09 职场文书
自荐信如何制作?
2014/02/21 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
文体活动总结范文
2014/05/05 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
学生上课说话检讨书
2014/10/25 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
学术会议开幕词
2016/03/03 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书