浅谈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 相关文章推荐
关于使用runtimeStyle属性问题讨论文章
Mar 08 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
Dec 12 Javascript
如何使用Jquery获取Form表单中被选中的radio值
Aug 09 Javascript
JS使用getComputedStyle()方法获取CSS属性值
Apr 23 Javascript
jQuery中Form相关知识汇总
Jan 06 Javascript
Bootstrap中CSS的使用方法
Feb 17 Javascript
js实现页面a向页面b传参的方法
May 29 Javascript
使用Angular.js实现简单的购物车功能
Nov 21 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
Vue.js的复用组件开发流程完整记录
Nov 29 Javascript
vue路由跳转传递参数的方式总结
May 10 Javascript
ES11新增的这9个新特性,你都掌握了吗
Oct 15 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
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
vue debug 二种方法
2018/09/16 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
Python数据类型详解(二)列表
2016/05/08 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
html5开发之viewport使用
2013/10/17 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
舞蹈教育学专业求职信
2014/06/29 职场文书
授权委托书格式
2014/07/31 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
实习单位意见
2015/06/04 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
Python matplotlib绘制雷达图
2022/04/13 Python