set演算子とは、オブジェクトのプロパティに、プロパティ設定時に呼び出す関数をバインドする演算子。
オブジェクトのプロパティに値を設定しようとしたときに、バインドした関数を呼び出すことができる。
get演算子と組み合わせて使うことが多い。
構文
var オブジェクト名 = {
set プロパティ名( 仮引数 ){
// プロパティ設定時に呼び出す処理文
}
};
set プロパティ名( 仮引数 ){
// プロパティ設定時に呼び出す処理文
}
};
「オブジェクト名」のオブジェクトの「プロパティ名」のプロパティに、オブジェクト名 . プロパティ名 = 値
で値を設定しようとすると、「プロパティ設定時に呼び出す処理文」を実行する。プロパティに設定しようとした値は、仮引数で受け取ることができる。
サンプル1
<script type="text/javascript">
var objA = {
set propA( num ) {
this . propB = num;
this . propC = num * 0.05;
this . propD = num * 1.05;
}
}
objA . propA = 100;
document . write( "<p>税込金額:" + objA . propD + "円</p>" );
document . write( "<p>消費税:" + objA . propC + "円</p>" );
document . write( "<p>税抜金額:" + objA . propB + "円</p>" );
</script>
var objA = {
set propA( num ) {
this . propB = num;
this . propC = num * 0.05;
this . propD = num * 1.05;
}
}
objA . propA = 100;
document . write( "<p>税込金額:" + objA . propD + "円</p>" );
document . write( "<p>消費税:" + objA . propC + "円</p>" );
document . write( "<p>税抜金額:" + objA . propB + "円</p>" );
</script>
↓↓↓出力結果↓↓↓
サンプル2
get演算子とset演算子の併用。
<script type="text/javascript">
var objB = {
_propA : "初期設定値",
get propA(){
return this . _propA;
},
set propA( str ) {
this . _propA = str;
}
}
document . write( "<p>objB . propA: " + objB . propA + "</p>" );
objB . propA = "後から設定した値";
document . write( "<p>objB . propA: " + objB . propA + "</p>" );
</script>
var objB = {
_propA : "初期設定値",
get propA(){
return this . _propA;
},
set propA( str ) {
this . _propA = str;
}
}
document . write( "<p>objB . propA: " + objB . propA + "</p>" );
objB . propA = "後から設定した値";
document . write( "<p>objB . propA: " + objB . propA + "</p>" );
</script>
↓↓↓出力結果↓↓↓