JavaScript オブジェクト: 変数プロパティに名前で文字列としてアクセスする [重複] 質問する

JavaScript オブジェクト: 変数プロパティに名前で文字列としてアクセスする [重複] 質問する

以下のようなJavaScriptオブジェクトがあるとします

var columns = {
  left: true,
  center : false,
  right : false
}

そして、オブジェクトとプロパティ名の両方が渡される関数があります。

//should return false
var side = read_prop(columns, 'right');

の本体はどのread_prop(object, property)ように見えるでしょうか?

ベストアンサー1

関数は必要ありません。括弧表記:

var side = columns['right'];

これは次の式に等しいドット表記var side = columns.right;ただし、right括弧表記を使用する場合、 は変数、関数の戻り値などからも取得される可能性があります。

そのための機能が必要な場合は、次のとおりです。

function read_prop(obj, prop) {
    return obj[prop];
}

元の質問に直接関係のない以下のコメントに答えると、ネストされたオブジェクトは複数の括弧を通して参照できます。次のようなネストされたオブジェクトがある場合:

var foo = { a: 1, b: 2, c: {x: 999, y:998, z: 997}};

xのプロパティには次のようにアクセスできますc

var cx = foo['c']['x']

プロパティが未定義の場合、それを参照しようとするとundefined(nullまたはではないfalse) が返されます。

foo['c']['q'] === null
// returns false

foo['c']['q'] === false
// returns false

foo['c']['q'] === undefined
// returns true

おすすめ記事