純粋な関数は、パラメーターとして渡されていない状態を変更すべきではないことは知っていますが、this
キーワードがその規則の例外であるかどうかはわかりません。これが私が考えていることの簡単な例です:
class Car {
color: string = 'red';
make: string = 'Dodge';
constructor() {}
changeMake(newMake: string): string {
this.color = 'blue'; // <-- Is this impure?
return newMake;
}
}
これは不純ですか?なぜ、またはなぜではないのですか?