JavaScript
1class Question { 2 3 constructor(id, score) { 4 5 this.id = id; 6 this.score = score; 7 } 8 9 get id() { 10 return this.id; 11 } 12 13 get score() { 14 return this.score; 15 } 16 17} 18 19export default Question;
JavaScriptで上のようにgetterでインスタンスプロパティーと同じ名前を使うとエラーが出てしまいますが、これはつまり、単にインスタンスプロパティーの値を返すだけならいちいちgetterなんて作らないで良いといったJavaScriptからの主張みたいなものなのでしょうか?
何らかの処理を加えてからインスタンスプロパティーの値をgetterで返す場合にgetterは使うべきものだと思いますが、名前を変えるほどでもないような処理をgetterで行ってから値を返す場合、どういった風にgetterの名称を工夫したら良いのでしょうか?(もしくは、インスタンスプロパティーの名前の付け方)
解決済み
原因はインスタンスプロパティーとgetterのメソッド名が同じだと、無限ループになってしまうことにありました。
解決策としては、インスタンスプロパティーは外部に公開しないのであれば、_をprefixとしてつけた上げて、
getterではthis._xxxのように参照してあげると良さそうです。(airbnbのコーディングガイドラインにもプライベートプロパティーには_をつけるというものがあるようです)
回答1件
あなたの回答
tips
プレビュー