浅谈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监控数据是否变化(修正版)
Apr 12 Javascript
js左侧三级菜单导航实例代码
Sep 13 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
Apr 20 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
Oct 29 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
JavaScript AOP编程实例
Jun 16 Javascript
ES6中Generator与异步操作实例分析
Mar 31 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
JS+CSS3实现的简易钟表效果示例
Apr 13 Javascript
vue移动端屏幕适配详解
Apr 30 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
May 20 Javascript
JavaScript eval()函数定义及使用方法详解
Jul 07 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地址引用(php地址引用的效率问题)
2012/03/23 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
javascript 写类方式之九
2009/07/05 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
Python实现的文本编辑器功能示例
2017/06/30 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
用django设置session过期时间的方法解析
2019/08/05 Python
python中count函数简单用法
2020/01/05 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
《商鞅南门立木》教学反思
2014/02/16 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
激励员工的口号
2014/06/16 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
学校教学管理制度
2015/08/06 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
JavaScript实现优先级队列
2021/12/06 Javascript
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers