JavaScriptの名前空間のスマートな使い方
- clockmaker
- 12263
- 0
- 49
- 7
WebGLで一躍有名になったJavaScriptライブラリのThree.jsですが、大文字の名前空間に違和感が…。クラス呼び出すときに、 new THREE.Object3D() って見栄えはもちろんのこと、タイピングも面倒だし、書き忘れが多発しそうです。#javascript
2012-02-12 00:00:52JSで、もし jp.clockmaker.data.MojaData クラスを作った場合、いつも new jp.clockmaker.data.MojaData() って書くのでしょうか?場合によってはローカル変数に名前空間を入れればすみますが。。 #javascript
2012-02-12 00:08:13@clockmaker (ε・◇・)з ボクだとグローバル空間にexport する関数を用意しておいて、必要な人にはそれを叩いてもらうって事やりますね。 サンプルコードが短く分かりやすくなりますね。 with() と一緒の発想です
2012-02-12 00:10:14@uupaa なるほどです! ユーザーが名前空間のON/OFFを選択できるのはいいアイデアですね。サンプルコードで都度名前空間を書いていたらライブラリの敷居が高いように思われそうですし、逆に仕事等でしっかり作るときには名前空間を使いたいときもあるでしょうし。
2012-02-12 00:17:29@clockmaker (ε・◇・)з ですです。サンプルコード上で「うわーなんか凄いのにシンプルー」感をかもし出すためにも、グローバル空間に押し出すといいです
2012-02-12 00:19:58ちなみに宇都宮さんのブログで、名前空間をスマートに処理する工夫が紹介されています。AS3のやり方から名前空間を使わないと落ち着かない感がにじみ出ているような気がしましたw http://t.co/R1S8bKSk #javascript
2012-02-12 00:34:47名前空間をなしにしてグローバルに使いたいなら、BitmapではなくCMBitmap(ClockMakerのBitmapクラス)というようにPrefixを作る方法もあると思いますが、それは好きではなかったり。#javascript
2012-02-12 00:43:40例えばBox2D( http://t.co/KUntnDjY )みたいに何でもかんでも「b2***.as」とするのはどうも好きになれないです…w #javascript
2012-02-12 00:44:50@clockmaker 参考までに私は Namespace.js というものを使用しています。 https://t.co/T8QljvF0 ActionScript を書いている人には馴染みやすい部類だと思います。
2012-02-12 00:57:22@clockmaker 名前の始まりをそろえるのはダーティな感じですが、interface を I ではじめたりクラスが何であるのかわかりやすい、あるいはIDEの補完で引きやすいのでどうしてもそっちに流れてしまいます。。
2012-02-12 00:58:22