javascriptではget
キーワードを使って、プロパティを取得する際に呼び出されるメソッドを定義することを知りました。これをcoffeescriptで使うにはどのように書けばいいのでしょうか?
ご回答、よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
1対1で対応するような書き方はCoffeeScriptにはありません。
参考: [stackoverflow]CoffeeScript: Getter/Setter in Object Initializers
上の回答にあるようにObject.defineProperty()
を使うのが一般的なようです。素直に書けば、2番目の回答にある下記のコードになると思います。
CoffeeScript
1class Person 2 constructor: (@firstName, @lastName) -> 3 Object.defineProperties @prototype, 4 fullName: 5 get: -> "#{@firstName} #{@lastName}" 6 set: (name) -> [@firstName, @lastName] = name.split ' ' 7 8p = new Person 'Robert', 'Paulson' 9console.log p.fullName # Robert Paulson 10p.fullName = 'Space Monkey' 11console.log p.lastName # Monkey
投稿2015/09/15 22:14
総合スコア21735
0
自分は初学者で詳しくは分かりませんが…
JavaScript で setter と getter を実装する方法には幾つかあるようです。(こちら を参照)
1)クロージャを使うパターン 2)__defineGetter__, __defineSetter__を使うパターン 3)特権メソッドを持つ無名オブジェクトを使うパターン 4)definePropertyを使うパターン
そして JavaScript ⇔ CoffeeScript の相互変換ができるとても便利なサイトがあります。http://js2.coffee/
こちらを利用すれば、mitsuru793さんがお知りになりたい JavaScript のコードの CoffeeScript での実装例を確認することができると思います。
投稿2015/09/15 17:33
総合スコア5936
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/16 13:51
2015/09/16 23:45
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/16 13:44