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 に答える