`
zhouyrt
  • 浏览: 1141679 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

判断JS对象是否拥有某属性

 
阅读更多

两种方式,但稍有区别


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在某些浏览器下是可以的。见:for in的缺陷

 

相关:各浏览器中for in顺序的差异

 

分享到:
评论
7 楼 zhouyrt 2011-01-21  
to lifesinger : 谢谢玉伯提醒。
6 楼 lifesinger 2011-01-20  
严格的,应该用

Object.prototype.hasOwnProperty.call(obj, key);

比如:

obj = { 'hasOwnProperty': 1 }
5 楼 heqishan 2011-01-20  
学习了。obj.hasOwnProperty(key)
4 楼 clue 2011-01-20  
Sunny_kaka 写道
var obj = {name:'jack'};
alert(obj.name === undefined);
这样不行吗

属性值为undefined有两种情况:
1. 在对象以及它的原型链上找不到这个属性
2. 属性值就是为undefined
3 楼 Sunny_kaka 2011-01-19  
var obj = {name:'jack'};
alert(obj.name === undefined);
这样不行吗
2 楼 tom33 2011-01-19  
细小的差别,谢谢分享。
1 楼 ldbjakyo 2011-01-19  
私有的 没办法

相关推荐

    判断JS对象是否拥有某属性的方法推荐

    在给定的文件中,推荐了两种不同的方法来判断一个JavaScript对象是否拥有某属性。 第一种方法是使用`in`运算符。`in`运算符可以检查对象是否具有特定的属性,无论该属性是该对象自身的属性,还是其原型链上的属性。...

    JS对象是否拥有某属性如何判断

    JS对象是否拥有某属性 两种方式,但稍有区别 1,in 运算符 var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toString' in obj); // --> true 可看到无论是name,还是...

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

    本文主要介绍了两种判断JS对象是否拥有某种属性的方法,它们分别是使用in运算符和hasOwnProperty方法。 首先,我们来看一下in运算符的使用。in运算符可以检查指定的属性是否存在于某个对象或其原型链中。例如,如果...

    JS如何判断对象是否包含某个属性

    最后,还可以通过与`undefined`进行比较来判断属性是否存在。这种方法检查属性值是否等于`undefined`。需要注意的是,如果属性存在但是值被赋予了`undefined`,这种方法就会返回错误的结果。使用示例如下: ```...

    JavaScript 判断对象中是否有某属性的常用方法

    在JavaScript中,判断对象是否拥有特定属性是常见的需求。...理解这些方法并灵活运用,可以帮助我们更有效地处理JavaScript中的对象属性判断。希望本文对你有所帮助,如有疑问欢迎提问。感谢对网站的支持!

    判断js对象是否拥有某一个属性的js代码

    在JavaScript编程中,经常需要判断一个对象是否拥有某个特定属性。正确判断对象属性的存在对于编写健壮的代码非常重要。对象的属性分为“自有属性”和“继承属性”,自有属性是直接存在于对象本身,而继承属性是从...

    JavaScript如何判断对象有某属性

    在JavaScript中,判断对象是否拥有某个属性是编程中常见的需求,尤其在处理动态数据和对象交互时。本文将详细介绍四种常见的方法,以便于在不同情况下选择合适的方式。 1. **点运算符 (.)** 和 **方括号运算符 ([ ]...

    javascript检测对象中是否存在某个属性判断方法小结

    `hasOwnProperty()`是JavaScript对象的一个内置方法,它用于判断对象是否具有指定的自有属性,不考虑继承属性。例如: ```javascript var o = {x: 1}; o.hasOwnProperty("x"); // true,自有属性中有x o....

    JS对象及属性参考手册

    4. 静态属性与实例属性:类(函数)对象可以通过 `prototype` 创建静态属性,实例对象则拥有自己的一份副本。 5. 属性特性:JS对象有读写、只读、不存在等属性特性,可以通过 `Object.getOwnPropertyDescriptor()` ...

    js代码-判断对象数组是否含有某个对象

    // 检查所有目标属性是否与当前对象属性相等 for (let key in target) { if (obj[key] !== target[key]) { return false; } } return true; }); } ``` 这个函数会检查数组中的每个对象,如果所有目标属性...

    JS判断是否为JSON对象及是否存在某字段的方法(推荐)

    在JavaScript(JS)编程中,有时我们需要验证接收到的数据是否为JSON对象,并检查该对象是否包含特定的字段。本文将详细介绍两种关键方法:判断数据是否为JSON对象以及检测JSON对象中是否存在某个字段。 首先,我们...

    js 判断文件时候为空

    上述代码首先获取了用户选择的第一个文件,然后通过比较其size属性是否为0来判断文件是否为空。如果size为0,则表示文件为空;否则,文件含有数据,非空。 然而,需要注意的是,这种方式并不能确保100%的准确性,...

    JavaScript中判断对象类型的几种方法总结

    每个JavaScript对象都有一个`constructor`属性,它指向创建该对象的构造函数。这可以用来判断未知对象的类型。例如,通过比较`arr.constructor === Array`,可以确定`arr`是否为数组。然而,`constructor`属性在...

Global site tag (gtag.js) - Google Analytics