如何访问 javaScript 对象 属性 NAME not VALUE
How to access javaScript object property NAME not VALUE
我有一个对象
me = {
name: "Mo",
age: 28,
}
我想看看这个对象是否有 属性 "height" 例如。 (它没有)我该怎么做?例如,如果它有 属性 "height" 我可以给它一个值“5,7”。
请注意:我不想检查 属性 VALUE(me.name),而是检查 属性 NAME。
谢谢。
您可以使用 in
运算符:
if ("height" in me) {
// object has a property named "height"
}
else {
// no property named "height"
}
注意,如果对象没有属性命名为"height",你仍然可以添加这样一个属性:
me.height = 100;
无论对象之前是否有 "height" 属性,这都有效。
还有继承自Object原型的.hasOwnProperty
方法:
if (me.hasOwnProperty("height"))
它与使用 in
的测试之间的区别在于 .hasOwnProperty()
只有 returns 如果 属性 存在 和 作为对象的直接 属性 存在,而不是通过其原型链继承。
您可以使用.hasOwnProperty
me.hasOwnProperty('height'); //false
直接回答:
if (Object.keys(me).indexOf("name") >= 0) {
//do the stuff
}
但是,您应该做的是创建合同 object/class/module,期望我拥有 height
属性。如果没有,您应该抛出异常。编程中最糟糕的事情是半途而废的期望。它不仅打破了 SOLID 规则,而且导致了这样的场景,其中唯一的解决方案是重复 if/switch 语句以确保处理所有可能性...
你可以使用
if (me.hasOwnProperty('height'))
{
}
else
{
}
我有一个对象
me = {
name: "Mo",
age: 28,
}
我想看看这个对象是否有 属性 "height" 例如。 (它没有)我该怎么做?例如,如果它有 属性 "height" 我可以给它一个值“5,7”。
请注意:我不想检查 属性 VALUE(me.name),而是检查 属性 NAME。
谢谢。
您可以使用 in
运算符:
if ("height" in me) {
// object has a property named "height"
}
else {
// no property named "height"
}
注意,如果对象没有属性命名为"height",你仍然可以添加这样一个属性:
me.height = 100;
无论对象之前是否有 "height" 属性,这都有效。
还有继承自Object原型的.hasOwnProperty
方法:
if (me.hasOwnProperty("height"))
它与使用 in
的测试之间的区别在于 .hasOwnProperty()
只有 returns 如果 属性 存在 和 作为对象的直接 属性 存在,而不是通过其原型链继承。
您可以使用.hasOwnProperty
me.hasOwnProperty('height'); //false
直接回答:
if (Object.keys(me).indexOf("name") >= 0) {
//do the stuff
}
但是,您应该做的是创建合同 object/class/module,期望我拥有 height
属性。如果没有,您应该抛出异常。编程中最糟糕的事情是半途而废的期望。它不仅打破了 SOLID 规则,而且导致了这样的场景,其中唯一的解决方案是重复 if/switch 语句以确保处理所有可能性...
你可以使用
if (me.hasOwnProperty('height'))
{
}
else
{
}