下記のコードでプロパティの値は5
に変わりません:
class TestClass{
constructor(prop){
this.prop = prop;
TestClass.validateProp(prop); // 例えばpropは整数で、最小値は5でなければなりません
console.log(this.prop)
}
static validateProp(prop){
// 仮にこれは不正だとします
this.prop = 5; // 最小値に設定
}
}
let testInstance = new TestClass('不正値');
もしかして、ゲッター・セッターが必要かもしれません。インタネットで例の数は少なく、ゲッター・セッターの宣言で終わる事が多いです。こちらの投稿を基にして、上記のコードにゲッターとセッターを追加しましたが、prop
は5
に成っていないままです。
class TestClass{
constructor(prop){
this.prop = prop;
TestClass.validateProp(prop); // 例えば最小値は5でなければなりません
console.log(this.prop)
}
set prop(newValue){
this._prop = newValue;
}
get prop(){
return this._prop;
}
static validateProp(prop){
// 仮にこれは不正だとします
this.prop = 5; // 最小値に設定
}
}
let testInstance = new TestClass('不正値');
どうすればよろしいでしょうか。
(上記の例には、規定値が役に立ちますが、この質問の中心はクラスの中にプロパティを変更する事ですから、規定値を置いてください)