式として扱う関数の定義方法
2008/02/09
http://d.hatena.ne.jp/amachang/20080208/1202448348
javascriptの関数が、文になるか式になるかというメモ。
このややこしさは、文法の欠点からくるものなんじゃないかと思いました。
関数を文として扱うときと式として扱うときの定義方法が同じなのがややこしくなる原因ということで、関数を式として扱いたいときはlambdaだったら良かったのに。
var Point = lambda(x, y) { this.x = x; this.y = y; }; Point.prototype = { x: 0, y: 0, display: lambda() { alert("point is (" + this.x + ", " + this.y + ")"); } }; var p = new Point(10, 20); p.display();
とか
var s = "0富士1鷹2茄子".replace(/\d/g, lambda(x){ return Number(x) + 1;});
とかみたいに。