浅谈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 相关文章推荐
动态表格Table类的实现
Aug 26 Javascript
基于jquery的可多选的下拉列表框
Jul 20 Javascript
没有document.getElementByName方法
Aug 19 Javascript
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 Javascript
微信小程序wx:for和wx:for-item的用法详解
Apr 01 Javascript
微信小程序日历/日期选择插件使用方法详解
Dec 28 Javascript
Node.js 如何利用异步提升任务处理速度
Jan 07 Javascript
vue组件间的参数传递实例详解
Apr 26 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
Dec 17 Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 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上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python中sets模块的用法实例
2014/09/30 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
师范学院教师自荐书
2014/01/31 职场文书
后备干部培训方案
2014/05/22 职场文书
二十年同学聚会感言
2015/07/30 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
导游词之韩国济州岛
2019/10/28 职场文书