Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
set 構文は、あるオブジェクトプロパティを、プロパティに設定しようとしたときに呼び出される関数に結びつけます。これはクラスでも使用できます。
追加の構文上の制限がいくつかあります。
与えられた関数に結び付けられるプロパティの名前です。他のプロパティのオブジェクト初期化子と同じ方法で、文字列リテラル、数値リテラル、識別子のいずれかにすることができます。
valprop に設定しようとする値を保持する変数のエイリアスです。
expression算出プロパティ名の式を使用して関数に結び付けることもできます。
JavaScript では、セッターは指定されたプロパティを変更しようとするたびに関数を実行するために使用されます。セッターは、多くの場合、ゲッターと組み合わせて使用されます。
オブジェクトのプロパティは、データプロパティかアクセサープロパティのいずれかであり、両方を同時に持つことはできません。詳細は Object.defineProperty() を参照してください。セッター構文を使用すると、オブジェクト初期化子内でセッター関数を指定することができます。
この構文を使用して定義されるプロパティは、作成されたオブジェクトの自身のプロパティであり、構成可能かつ列挙可能です。
以下の例では、擬似プロパティ current を language オブジェクトに定義します。 current に値が代入されると、 log をその値で更新します。
current は定義されておらず、あらゆるアクセスを試みてもその結果は undefined になることに注意してください。
クラスインスタンスで利用できるパブリックインスタンスセッターを定義する際にも、まったく同じ構文を使用することができます。クラス内では、メソッド間をカンマで区切る必要はありません。
セッタープロパティはクラスの prototype プロパティ上に定義されるため、そのクラスのすべてのインスタンスで共有されます。オブジェクトリテラル内のセッタープロパティとは異なり、クラス内のセッタープロパティは列挙可能ではありません。
静的セッターとプライベートセッターはよく似た構文を使用することができます。これらは static およびプライベート要素のページで説明しています。
セッターを削除したい場合は、 delete で削除するだけです。
既存のオブジェクトにセッターを追加するには、 Object.defineProperty() を使用してください。
| ECMAScript® 2027 Language Specification # sec-method-definitions |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年9月18日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.