式として扱う関数の定義方法

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;});

とかみたいに。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください