0

我试图弄清楚这是否合理,但充其量只是出现语法错误。所以我想知道这是否可能。

我拥有的是一个对象(仅示例)

var myObj = {
       something1_max:50,
       something1_enabled:false,
       something1_locked:true,
       something2_max:100,
       something2_enabled:false,
       something2_locked:true,
       something3_max:10,
       something3_enabled:true,
       something3_locked:true
    }

我想通过一个函数做的是再次做一些事情,例如总结一下。

function displayDetails(theScope, obj)
{
   console.log(obj.[theScope]_max);
}

(function(){displayDetails('something3', myObj);})()

所以当displayDetails()我在这个例子中看到的范围被调用时,该范围的最大值。在示例的控制台日志中,我希望看到10

4

2 回答 2

1

将属性名称字符串放在括号中。

console.log(obj[theScope + '_max']);
于 2013-09-17T18:00:59.730 回答
1

JavaScript 对象的属性始终可以使用括号语法作为字符串访问,即object['property']. 当然,这意味着您可以动态构建该字符串:

console.log(obj[theScope + '_max']);
于 2013-09-17T18:01:00.613 回答