@t_wada 先生!TAの指標としてお聞きしたいのですが、JavaScriptでクラスを作る方法はカプセル化の観点からはクロージャーベースがよいのでしょうか?それともプロトタイプベース?
2012-05-24 15:11:23@t_wada おだいだとクラスベースじゃなくて、 var hoge = { hoge : 1, hoge : function() {} }; みたいでオケってこと?
2012-05-24 15:16:27@t_wada var oota = {name: "oota", hello: function() { return "hello " + http://t.co/wghdD8U4;}}; こういう系でオケってこと?
2012-05-24 15:30:09@oota_ken @t_wada そもそもインスタンスベースだったら、プロトタイプなんて書き換えなくていいかw
2012-05-24 15:32:40@t_wada あ、そういう話です。まーでもそこまでしなくてもいいかなって思い始めました。カプセル化とかちょっとクラスベースすぎるかなとw
2012-05-24 15:34:37@oota_ken いや、カプセル化とクラスは切り分けて考えられるでしょう。まずはクラスを作るという習慣を一度捨てよう。クラスは最初に作るものでは無くて、あとから必要に応じて抽出できるものです。そして js ではクラスがスコープを規定するのでは無くて、関数がスコープを規定する。
2012-05-24 15:37:00@t_wada ふむふむ。関数型にむしろ近い形で作った方がいい感じなのかな?最近実は自分専用スクリプトには全然クラス作ってないので、そっちの方がやりやすいかも。
2012-05-24 15:38:17@oota_ken カプセル化や情報隠蔽は大事です。ただそれらがクラスじゃないとできないというのは(少なくとも js では)違うかなと。
2012-05-24 15:38:20@t_wada 先生!どうもクラスベースにラッピングされアットものを使っていたので、そこらへんまだJavaScriptの流儀を習得できていないので懇親会でペロペロねがいます!
2012-05-24 15:39:12@t_wada function Person(name) { return { hello: function() { return "hello " + name; }} oota = Person("oota"); oota.hello();
2012-05-24 15:43:33@oota_ken UpperCamel な関数名はコンストラクタ風に new を付けて呼び出すことを想定しているものだけに付けましょう
2012-05-24 15:45:03@t_wada りょ、りょうかいw そこらへんからしてやばいねw どうも、本読んでから実務ではクラスベースばっかりで脳みそがとろけていたよ・・・ありがとう。
2012-05-24 15:45:55@t_wada function person(name) { return { hello: function() { return "hello " + name; }} 書き直した。関数ベースのカプセル化としてはこのレベルでOK?あ、忙しいのにすみません
2012-05-24 15:47:50