JavaScript のショートハンドプロパティ

変数abがあり、次のようにオブジェクトobjを定義したとしましょう。

const a = 1;
const b = 2;
const obj = {
  a: a,
  b: b,
};

このオブジェクトobjを出力すれば次のようになります。

console.log(obj); // {a: 1, b: 2}

これは、新しくオブジェクトを作って、a というプロパティに a の値をセット、 b というプロパティに b の値をセットしたという状況です。

違う書き方をすれば、次のような状況です。

const obj = {};
obj.a = a;
obj.b = b;

これは、今ある変数をオブジェクトのプロパティ名に付け替えたとも言えます。

この場合、JavaScript の ES6 ではもっと簡潔に書くことができるようになりました。

JavaScript (ECMAScript 2015, ES6) で導入されたショートハンドプロパティ (shorthand properties、短縮表記プロパティ) と呼ばれる書き方では、上と同様のことが次のように書けます。

const a = 1;
const b = 2;
const obj = { a, b }; // ショートハンド・プロパティ
console.log(obj); // {a: 1, b: 2}

この場合、オブジェクトの変数objabという名前の二つのプロパティができて、 それらの値として、それぞれ変数a、変数bの値がセットされます。

ちなみに蛇足ですが、「分割代入」(destructuring) はショートハンドプロパティの逆の操作と考えると覚えやすいです。 ショートハンドプロパティでは、変数abからオブジェクト { a: 1, b: 2}を作りました。 分割代入では { a: 1, b: 2 } から、変数abを抜き取ります。

const obj = { a: 1, b: 2 };
const { a, b } = obj; // Destructuring
console.log(`a=${a}, b=${b}`); // a=1, b=2

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 JavaScript 入門