set

by 3 contributors:

オブジェクトプロパティに対して、値を設定しようとするときに呼び出される関数を割り当てます。

構文

{set prop(val) { . . . }}
{set [expression](val) { . . . }}

引数

prop
与えられた関数を割り当てるプロパティの名称です。
val
prop に設定しようとする値を保持する変数のエイリアスです。

説明

JavaScript では、特定のプロパティを変更しようとするたびに関数を実行するため、setter を利用できます。setter はたいてい getter と合わせて、擬似的なプロパティを作成するために用いられます。実際の値を持つプロパティが、同時に setter を持つことはできません。

JavaScript 1.8.5 より、set 演算子は以下のようになります:

setter は delete 演算子を用いて削除できます。

set 演算子による setter の定義

ここではオブジェクト o に疑似プロパティ current を定義して、値が設定されたときに log をその値で更新します:

var o = {
  set current (str) {
    return this.log[this.log.length] = str;
  },
  log: []
}

current は定義されておらず、あらゆるアクセスを試みてもその結果は undefined になることに注意してください。

delete 演算子による setter の削除

delete o.current;

ブラウザ実装状況

Robert Nyman's page に基づきます。

サポートなし (特に IE6-8 において) とは、スクリプトが構文エラーになることを意味します。

機能 Firefox (Gecko) Chrome Internet Explorer Opera Safari
基本サポート 2.0 (1.8.1) 1 9 9.5 3
機能 Firefox Mobile (Gecko) Android IE Mobile Opera Mobile Safari Mobile
基本サポート ? ? ? ? ?

ドキュメントのタグと貢献者

タグ: 
Contributors to this page: teoli, ethertank, yyss
最終更新者: teoli,
サイドバーを隠す