判断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 相关文章推荐
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
Mar 04 Javascript
js浮动图片的动态效果
Jul 10 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
详解AngularJS实现表单验证
Dec 10 Javascript
Flow之一个新的Javascript静态类型检查器
Dec 21 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
Jul 14 Javascript
微信小程序(应用号)开发新闻客户端实例
Oct 24 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
react配置antd按需加载的使用
Feb 11 Javascript
原生js实现3D轮播图
Mar 21 Javascript
vue3 自定义图片放大器效果的示例代码
Jul 23 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 shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
DIV始终居中的js代码
2014/02/17 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
原生js生成图片验证码
2020/10/11 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
python中调试或排错的五种方法示例
2019/09/12 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Python多线程正确用法实例解析
2020/05/30 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
财务工作个人求职的自我评价
2013/12/19 职场文书
蛋糕店的商业计划书范文
2014/01/27 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
法定代表人证明书
2014/11/28 职场文书
初中毕业生感言
2015/07/31 职场文书
Python+DeOldify实现老照片上色功能
2022/06/21 Python
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS