如何访问 javaScript 对象属性 NAME not VALUE
How to access javaScript object property NAME not VALUE
我有一个对象
me = {
name: "Mo",
age: 28,
}
例如,我想看看这个对象是否具有"高度"属性。(它没有)我该怎么做?因此,例如,如果它具有属性"height",我可以给它一个值"5,7"。
请注意:我不想检查属性值(me.name),而是检查属性名称。
谢谢。
您可以使用
in
运算符:
if ("height" in me) {
// object has a property named "height"
}
else {
// no property named "height"
}
请注意,如果对象没有名为"height"的属性,您仍然可以添加这样的属性:
me.height = 100;
无论对象以前是否具有"高度"属性,这都有效。
还有从 Object 原型继承的 .hasOwnProperty
方法:
if (me.hasOwnProperty("height"))
它与具有 in
的测试之间的区别在于,仅当属性存在并且作为对象的直接属性存在并且不通过其原型链继承时,.hasOwnProperty()
才返回 true。
您可以使用.hasOwnProperty
me.hasOwnProperty('height'); //false
您可以使用
if (me.hasOwnProperty('height'))
{
}
else
{
}
直接回答:
if (Object.keys(me).indexOf("name") >= 0) {
//do the stuff
}
但是,你应该做的是创建一个合约对象/类/模块,期望我拥有height
属性。如果没有,则应引发异常。编程中最糟糕的事情是半屁股期望。它不仅打破了 SOLID 戒律,还会导致这样的场景,其中唯一的解决方案是重复的 if/switch 语句,以确保处理所有可能性......
相关文章:
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- 使用onclick调用属性对象函数
- 嵌套为..in 循环,列出多维对象的属性(对象)
- 动态属性对象 - JSON
- 在不使用隔离范围angularjs自定义指令的情况下获取属性对象
- 通过属性传递属性/对象.Javascript
- Javascript:属性/对象的类型
- 访问JSON中的属性(对象)
- 属性对象Javascript不是用Jquery Deferred设置的
- 无法读取属性'#<对象>'未定义的获取错误
- Twitter中多属性对象的子字符串匹配
- 无法设置'data'属性'对象'标记.(只IE8)
- 更新数据属性对象属性值
- 将属性对象的选定对象从原型推入数组
- 将单个属性对象字面量的数组转换为仅包含其值的数组的最佳方法
- 寻找一种更简单的方法来检查是否多个属性&对象中的方法是未定义的
- 主干模型:带有get方法的空属性,但在属性对象中
- 如何赋值给"text"someText"属性对象在动能js
- Angularjs的数据绑定与数据属性对象
- 如何将一个嵌套的javascript对象转换为只有一级属性对象