JavaScriptをRubyっぽくしてみるテスト (その2)
追記 (3月1日)
バグを修正しました。
バグを見つけたので
現在、バグを見つけたので修正しています。
以下のコードのように、HogeクラスにHogeModuleモジュールをミックスインしようとした場合、うまくクラスを呼び出すことができなくなるバグです。
module("HogeModule", function() { function SuperClass() { }; }); module( function() { function Hoge() { include(HogeModule); function w() { SuperClass._new(); }; }; Hoge._new().w(); });
ちなみに、クラスの定義については、アルファベットの最初の文字が大文字の関数だと、クラスと判断しています。それ以外はメソッドとして扱います。
アンダーバーについて
newやprivateなどの予約語には、アンダーバー ( _ )を頭に付けています。たとえば、newなら_new、privateなら_privateとなります。