判断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检测浏览器flash版本的实现代码
Dec 06 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 Javascript
jQuery Migrate 1.1.0 Released 注意事项
Jun 14 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 Javascript
js完整倒计时代码分享
Sep 18 Javascript
浅谈vue中数据双向绑定的实现原理
Sep 14 Javascript
JavaScript模板引擎实现原理实例详解
Dec 14 Javascript
angularjs1.X 重构controller 的方法小结
Aug 15 Javascript
JS中比较两个Object数组是否相等方法实例
Nov 11 Javascript
javascript实现留言板功能
Feb 08 Javascript
js实现简单图片拖拽效果
Feb 22 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
实用函数4
2007/11/08 PHP
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php后台程序与Javascript的两种交互方式
2009/10/25 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
php中explode与split的区别介绍
2012/10/03 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
javascript URL锚点取值方法
2009/02/25 Javascript
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
python复制文件代码实现
2013/12/23 Python
python动态参数用法实例分析
2015/05/25 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
Python实现FM算法解析
2019/06/18 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
Python Selenium库的基本使用教程
2021/01/04 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
override和overload的区别
2016/03/09 面试题
大学校园毕业自我鉴定
2014/01/15 职场文书
音乐教学反思
2014/02/02 职场文书
与美同行演讲稿
2014/09/13 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
Java数组详细介绍及相关工具类
2022/04/14 Java/Android