检查对象是否有属性
Javascript : Check if object has properties
如何检查对象中是否存在一个属性有几个答案。
我一直在用
if(myObj.hasOwnProperty('propName'))
但我想知道这与
是否有什么不同if('propName' in myObj){
它们几乎是相等的,不同的是hasOwnProperty
不检查原型链,而in
检查。
var test = function() {}
test.prototype.newProp = function() {}
var instance = new test();
instance.hasOwnProperty('newProp'); // false
'newProp' in instance // true
小提琴
如前所述,Object.hasOwnProperty
只返回"自己的属性",即直接添加的属性,而不是添加到prototype
的属性。
是的,有区别。hasOwnProperty()
忽略与prototype
一起添加的属性和方法。我试着用例子来解释。例如,如果你有对象的原型
Object.prototype.something = function() {};
假设下面是object
var obj = {
"a" : "one",
"b" : "two"
};
和循环:
for ( var i in obj ) {
//if (obj.hasOwnProperty(i)) {
console.log(obj[i]);
//}
}
如果没有hasOwnProperty
,它将输出one two function()
,而使用hasOwnProperty()
方法只输出one two
查看First和Second DEMOS的区别
相关文章:
- 检查对象的所有属性是否未定义
- 检查来自不同数组的两个元素的一个属性是否相等
- 正在检查属性的属性是否存在
- 在 Forerunner 数据库集合中创建主键时,key 属性是否可以位于集合对象的对象内部
- 使用 Chai - 如何检查对象属性是否包含 DOM 元素
- Ember 1.0 预发行版支持属性是否已更改
- VueJS:检查属性是否具有来自其他属性的值
- 创建nonce并将其输出为数据属性是否存在漏洞
- 检查数组中的对象属性是否与具有相同ID的另一个对象重复
- 如何在Ember.js中创建一个计算属性来查看单个EmberData属性是否脏
- Javascript-在检查对象属性是否存在时避免异步竞争条件
- 如何指定输入元素中允许的最大字符数 - 设置 maxlength 属性是否足够
- 如何检查主干模型中的嵌套属性是否已更改
- HTML 文本框值属性是否安全免受 XSS 攻击
- 在 HTML 定位点中指定“语言”属性是否会更改事件行为
- 在灯泡阶段检查对象属性是否存在
- 给定元素本身的 aria-live 属性是否可以使用 javascript 动态设置
- 立即调用的属性是否可以引用它所分配到的对象
- 检查 css 属性是否应用了 !重要属性
- 检查数据属性是否具有值