判断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 相关文章推荐
运算符&&的三个不同层次
Apr 07 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
基于jQuery实现简单人工智能聊天室
Feb 10 Javascript
字太多用...代替的方法(两种)
Mar 15 Javascript
详解webpack 入门与解析
Apr 09 Javascript
JS验证输入的是否是数字及保留几位小数问题
May 09 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
Mar 25 Javascript
微信小程序进入广告实现代码实例
Sep 19 Javascript
浅谈vue异步数据影响页面渲染
Oct 29 Javascript
vuex管理状态仓库使用详解
Jul 29 Javascript
如何基于viewport vm适配移动端页面
Nov 13 Javascript
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
关于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
php设计模式 Proxy (代理模式)
2011/06/26 PHP
php 字符串替换的方法
2012/01/10 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
详解python中递归函数
2019/04/16 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
django的model操作汇整详解
2019/07/26 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Python @property及getter setter原理详解
2020/03/31 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
python简单实现插入排序实例代码
2020/12/16 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
家长对学生的评语
2014/04/18 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS