
【JavaScript入門】メソッド:getter、setter
JavaScript のオブジェクトでは、通常のプロパティに加えて「プロパティに関数を割り当てたもの」を メソッド と呼びます。また、プロパティの取得や代入をトリガーに内部の処理を呼び出せる機能として、getter と setter が用意されています。メソッド・getter・setter を使えば、オブジェクトのデータを読み書きする際に、自動で処理を挟めるので、コードをよりわかりやすく整理することができます。

1.メソッドとは
オブジェクトリテラルの中で、プロパティ名に直接関数を定義すると、それが メソッド と呼ばれます。たとえば、下記のように「method(arg1, arg2) { ... }
」と書くと、そのオブジェクトが持つメソッドという扱いになります。
2.getter と setter
- getter: プロパティを読み取るとき(
obj.prop
など)に内部で関数を呼び出せる仕組み。 - setter: プロパティに代入するとき(
obj.prop = 値
など)に内部で関数を呼び出せる仕組み。
実際の文法は以下の通りです。
{
プロパティ名: 値, // 通常のプロパティ
メソッド名(引数) {
// メソッドの処理
return 戻り値;
},
get プロパティ名() {
// ここに getter の処理
return 戻り値;
},
set プロパティ名(引数) {
// ここに setter の処理
}
}
3.サンプルコード (HTML + JavaScript)
次の例を「myObjectMethodGetterSetter.html」というファイル名で保存し、ブラウザで開き、開発者ツール(コンソール)の出力を確認してください。
【myObjectMethodGetterSetter.html】
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>myObjectMethodGetterSetter.html</title>
</head>
<body>
<h1>メソッド・getter・setter のサンプル</h1>
<p>ブラウザの開発者ツール(コンソール)で出力を確認してください。</p>
<script>
// オブジェクトを作成
const product = {
// 通常のプロパティ
name: 'ストロベリーケーキ',
// メソッド
describeMessage(prefix, suffix) {
return `${prefix}${this.name}${suffix}`;
},
// getter
get fancyName() {
return this.name + '★おすすめ★';
},
// setter
set rename(newName) {
this.name = newName;
}
};
// 1) メソッドの呼び出し
const msg = product.describeMessage('★', '★');
console.log('メソッドの結果:', msg);
// 2) 通常のプロパティ
console.log('通常のプロパティ:', product.name);
// 3) getter
console.log('getter:', product.fancyName);
// 4) setter
product.rename = 'チョコレートケーキ';
console.log('setter後 name:', product.name);
console.log('setter後 fancyName:', product.fancyName);
</script>
</body>
</html>
デバックコンソールの出力
メソッドの結果: ★ストロベリーケーキ★
通常のプロパティ: ストロベリーケーキ
getter: ストロベリーケーキ★おすすめ★
setter後 name: チョコレートケーキ
setter後 fancyName: チョコレートケーキ★おすすめ★
4.まとめ
- オブジェクトのプロパティに関数を定義すると、それはメソッドと呼ばれる。
- getterを定義すると、プロパティ取得時に自動で関数が呼ばれ、戻り値を返せる。
- setterを定義すると、プロパティ代入時に自動で関数が呼ばれ、値の検証や調整などが行える。
- 実際には getter/setter を多用しすぎるとコードが読みにくくなる場合もあるため、必要性と可読性を考慮しつつ使うのが望ましい。
こうしたメソッドや getter/setter の機能を上手く活かせば、オブジェクト内部のデータを安全かつ柔軟に扱えるようになります。