判断JS对象是否拥有某种属性的两种方式


Posted in Javascript onDecember 02, 2013

两种方式,但稍有区别

1,in 运算符

var obj = {name:'jack'}; 
alert('name' in obj); // --> true 
alert('toString' in obj); // --> true

可看到无论是name,还是原形链上的toString,都能检测到返回true。

2,hasOwnProperty 方法

var obj = {name:'jack'}; 
obj.hasOwnProperty('name'); // --> true 
obj.hasOwnProperty('toString'); // --> false

原型链上继承过来的属性无法通过hasOwnProperty检测到,返回false。

需注意的是,虽然in能检测到原型链的属性,但for in通常却不行。

当然重写原型后for in在IE9/Firefox/Safari/Chrome/Opera下是可见的。见:for in的缺陷

Javascript 相关文章推荐
javascript写的日历类(基于pj)
Dec 28 Javascript
javascript中String类的subString()方法和slice()方法
May 24 Javascript
javascript检测页面是否缩放的小例子
May 16 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
浅谈JavaScript中指针和地址
Jul 26 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
Dec 20 Javascript
vue-devtools的安装步骤
Apr 23 Javascript
vue项目中使用vue-i18n报错的解决方法
Jan 13 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
vue路由拦截器和请求拦截器知识点总结
Nov 08 Javascript
vue 单页应用和多页应用的优劣
Oct 22 Javascript
用JS创建一个录屏功能
Nov 11 Javascript
关于js中for in的缺陷浅析
Dec 02 #Javascript
js验证整数加保留小数点的简单实例
Dec 02 #Javascript
ExtJs中gridpanel分组后组名排序实例代码
Dec 02 #Javascript
javascript操作html控件实例(javascript添加html)
Dec 02 #Javascript
解析Javascript中大括号“{}”的多义性
Dec 02 #Javascript
解析JavaScript中点号“.”的多义性
Dec 02 #Javascript
解析JavaScript中的不可见数据类型
Dec 02 #Javascript
You might like
ajax php 实现写入数据库
2009/09/02 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
JavaScript 继承详解(二)
2009/07/13 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
centos下更新Python版本的步骤
2013/02/12 Python
使用python开发vim插件及心得分享
2014/11/04 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
python使用生成器实现可迭代对象
2018/03/20 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
Python 解决相对路径问题:"No such file or directory"
2020/06/05 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
Python是如何进行类型转换的
2013/06/09 面试题
《藤野先生》教学反思
2014/02/19 职场文书
求职意向书
2014/04/01 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js