プログラミング言語 JSX で Vector2 クラスを作ってみた
さっきのやつに引き続き JSX についてのエントリーです.
今回は Dart の時同様 Vector2 を実装してテストしてみました.
Code
vector.js.jsx
Vector2 実装部分です. 書きやすいかも.
/** * Vector2 */ class Vector2 { var x = 0; var y = 0; function constructor() { this.x = 0; this.y = 0; } function constructor(x:number, y:number) { this.x = x; this.y = y; } function set(x:number, y:number):Vector2 { this.x = x; this.y = y; return this; } function set(p:Vector2):Vector2 { this.x = p.x; this.y = p.y; return this; } function length():number { return Math.sqrt(this.x*this.x + this.y*this.y); } function normalize():Vector2 { var len = this.length(); this.x /= len; this.y /= len; return this; } function log():Vector2 { log "(" + this.x.toString() + "," + this.y.toString() + ")"; return this; } }
Test
Vector2 テスト部分です.
/** * Main */ class _Main { static function main(args : string[]) :void { // コンストラクタ & オーバーロード new Vector2().log(); // (0,0) new Vector2(1, 2).log(); // (1,2) // Vector2 生成 var v = new Vector2(); // setter test v.set(3, 4); // length test log v.length(); // 5 // normalize test v.normalize().log();// (0.6, 0.8) // length test log v.length(); // 1 } }
Result
実行結果です. ちゃんと関数オーバーロードも効いていますね.
(0,0) (1,2) 5 (0.6,0.8) 1
本日, 19:30 から『Web先端技術味見部#4 (仮テーマはJSX!)』 なんてセミナーがあるみたいです.
場所は DeNA 社らしい. 行きたいけど, 福岡の私は指を加えて Timeline を見てます.
もう満員ですが, 興味があるかたはぜひ. JSX についての話なんかも!!
[…] プログラミング言語 JSX で Vector2 クラスを作ってみた […]