JavaScriptの分割代入を使った関数パラメータの受け渡し方法
JavaScriptでは、関数にオブジェクトを引数として渡す際、「分割代入(デストラクチャリング)」と呼ばれる構文を利用することで、オブジェクトの各プロパティを個別の変数として受け取ることができます。
さらに、各プロパティにデフォルト値を指定しておけば、対応するプロパティが存在しない場合でもエラーにならず、あらかじめ設定した値が使用されます。これにより、安全で柔軟な関数設計が可能になります。
サンプルコード
以下は、分割代入を使って関数のパラメータを受け取るJavaScriptのコード例です。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.sample,
.result {
font-size: 18px;
font-weight: 500;
color: red;
}
.result {
color: rebeccapurple;
}
</style>
</head>
<body>
<h1>De structuring function parameters</h1>
<div class="sample"></div>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to call a function and pass above object to it as argument</h3>
<script>
let sampleEle = document.querySelector(".sample");
let resultEle = document.querySelector(".result");
sampleEle.innerHTML = "{a:22,b:44,c:55,d:99}";
function add({ a = 0, b = 0, c = 0, d = 0 }) {
return a + b + c + d;
}
document.querySelector(".Btn").addEventListener("click", () => {
resultEle.innerHTML += "Sum = " + add({ a: 22, b: 44, c: 55, d: 99 });
});
</script>
</body>
</html>
コードの解説
このコードのポイントは以下の通りです。
- 分割代入による引数の受け取り: 関数
add()は、引数を波括弧{ }で囲むことで、渡されたオブジェクトからa、b、c、dの4つのプロパティを直接取り出しています。 - デフォルト値の設定: 各プロパティにはデフォルト値「0」が設定されています。そのため、引数のオブジェクトに該当するプロパティが存在しない場合でも、エラーになることなく「0」として計算が行われます。
- イベント処理: ボタンをクリックすると、
{ a: 22, b: 44, c: 55, d: 99 }というオブジェクトがadd()関数に渡され、各プロパティの合計値が画面に表示されます。
実行結果
ページを開いた直後の表示は以下の通りです。

「CLICK HERE」ボタンをクリックすると、オブジェクトの各値を足し合わせた結果「Sum = 220」が表示されます。

まとめ
分割代入を活用すると、関数がどのようなデータを必要としているのかが引数の定義だけで明確になり、可読性の高いコードを書くことができます。また、デフォルト値と組み合わせることで、想定外の入力にも強い堅牢な関数を実現できます。複数のパラメータを持つ関数を設計する際には、ぜひこの手法を活用してみてください。
-
JavaScriptの関数プロトタイプとは?仕組みと使い方を解説
JavaScriptで作成されたすべての関数には、JavaScriptエンジンによって自動的にprototypeプロパティが追加されます。このprototypeプロパティはオブジェクトであり、デフォルトではconstructorプロパティを含んでいます。関数のプロトタイプには、以下のようにしてアクセスできます。functionName.prototypeコンストラクタ関数を使ってオブジェクトを生成する場合、このprototypeプロパティを活用することで、同じコンストラクタから作成された複数のオブジェクト間でメソッドやプロパティを効率的に共有することができます。これにより、各インスタンスごとに
-
JavaScriptでのメソッド借用:call()・apply()・bind()の使い方を解説
JavaScriptでは、call()、apply()、bind()という3つのメソッドを使うことで、あるオブジェクトが持つメソッドを別のオブジェクトが「借用」できます。これは、本来そのメソッドを持たないオブジェクトに対して、thisの参照先を差し替えてメソッドを実行できる便利なテクニックです。 3つのメソッドの違い call():引数をカンマ区切りで個別に渡し、即座に関数を実行します。 apply():引数を配列(または配列風オブジェクト)として渡し、即座に関数を実行します。 bind():thisを固定した新しい関数を返すだけで、即座には実行されません。返された関数は後から好きなタイミン