Google JS style guideによると、ゲッターとセッターはお勧めしません。どうしてこれなの?Google: "EcmaScript 5プロパティのgetterとsetterは推奨されません"なぜですか?
Mozilla JS Object docs jsでgettersとsettersを使用して明示的に提唱します。私は不一致について混乱しています。
Google JS style guideによると、ゲッターとセッターはお勧めしません。どうしてこれなの?Google: "EcmaScript 5プロパティのgetterとsetterは推奨されません"なぜですか?
Mozilla JS Object docs jsでgettersとsettersを使用して明示的に提唱します。私は不一致について混乱しています。
getterとsetterを使用すると、外部から見ると混乱する可能性があります。
私はオブジェクトmyObject
を次のプロパティstatus
で作成するとします。そのプロパティはゲッターを使用し、取得するための結果を計算します。例:
const status = myObject.status;
const open = status.open; // true
const color = status.color; // "blue"
今毎回私はちょうど直接プロパティにアクセスするが、それは真実じゃないように見えるmyObject.status
を使用しています。実際にはは多くの計算を行うことができる関数を呼び出します。
は今myObjectという実装されていませんでした別の人が入って来、この
const open = myObject.status.open; // true
const color = myObject.status.color; // "blue"
を行い、それが動作します! 潜在的に計算する重い関数は、1回ではなく2回呼び出されます。 また、副作用(最悪の状況、副作用を伴うゲッターを使わないでください)を持つことができます。また、バグを探してどこから来るのか分からないときは、伝えにくいです。
だから、いくつかはconst status = myObject.getStatus();
を使用することをお勧めします。 明示的な関数呼び出しです。
最初のリンクはスタイルガイドで、主観的です。 2番目のリンクは、それらを使用して「提唱する」のではなく、ドキュメントの使用方法のみを説明しています。残念なことに、この質問はあまりにも意見に基づいており、良い答えを出すことができません。 – tcooc
それは_スタイルガイドです。それは彼らがコードを書くことを選択する方法です。 – vlaz
そのMDNページではゲッターとセッターを使用することを推奨していますか? – robbmj