パラメータを変更しない
引数として渡されたオブジェクトを操作すると、呼び出し元で意図しない副作用を引き起こす可能性があるため、パラメータを変更しないでください。
関数が受け取ったオブジェクトを直接変更すると、その関数は「副作用」を持つことになります。これにより、関数の呼び出し元でオブジェクトが予期せず変更され、バグの原因となります。関数は、受け取ったデータを変更するのではなく、新しいデータを生成して返す(純粋関数に近づける)ことが望ましいです。
引数として渡されたオブジェクトを操作すると、呼び出し元で意図しない副作用を引き起こす可能性があるため、パラメータを変更しないでください。
関数が受け取ったオブジェクトを直接変更すると、その関数は「副作用」を持つことになります。これにより、関数の呼び出し元でオブジェクトが予期せず変更され、バグの原因となります。関数は、受け取ったデータを変更するのではなく、新しいデータを生成して返す(純粋関数に近づける)ことが望ましいです。
// bad
function f1(obj) {
obj.key = 1;
}// good
function f2(obj) {
const key = Object.prototype.hasOwnProperty.call(obj, 'key') ? obj.key : 1;
}