JavaScriptをRubyっぽくしてみるテスト
RubyのようなJavaScriptをブラウザ上で実行したい
Rubyを勉強していますと、文法がC系のJavaScriptとは一味違って面白いです。
とはいえ、Rubyの機能をJavaScriptでも使えたらいいなと考えていました。
そんな折、開発中のSIEの記述を軽量化するためには、新しいJavaScriptの書き方が必要だと思い、今回、JavaScriptをRubyっぽくしてみようと試みました。もちろん、ほとんどのブラウザで動くことが前提です。
サンプル
module("HogeModule", function(){ function SuperClass() { /* インスタンス変数widthとheightのゲッターとセッターを設定 */ attr_accessor("width", "height"); /* メソッドの定義 */ function initialize(w, h) { width = w; height = h; }; function w() { return width+3; }; function h() { return height+3; }; }; /* SubClassクラスはSuperClassを継承 */ SuperClass > function SubClass() { /* wメソッドのオーバライド */ function w() { return _super() + h(); }; }; }); module( function() { include(HogeModule); var obj = SubClass._new(12, 15); obj.w(); obj.h(); });
特長
- クラスの継承
- モジュールとクラスのMix-inに近い機能
- グローバル変数を定義する必要がない
- シンプルな記述
これからの予定
まだ、開発途中ですので、デモなどは用意していません。SIEに採用されるかどうかも、今後の開発しだいです。
まだまだ、確認していないブラウザがあります。とりあえず、Opera12.142で動作したので、この記事でご報告します。