■
{ function x(x,y) { return function() { return x-y; }; }; var y = x(4,5); var z = x(3,5); puts( y() ); // = -1 puts( z() ); // = -2 }
今回の僕はいつもとは違う!!引数の順番間違えなかったよ。
前回のは、あれから、
var obj = object { function retretthis () { return function () { return this; }; } } var retthis = obj.retretthis(); retthis();
こんなときは何が戻るのん?とか、
var obj = object { function retretthis () { return function () { return this; }; } } var obj2 = object { var retthis = obj.retretthis(); } obj2.retthis();
こーんなときは何が戻るのん?とか、考えてると、何が自然になるのかわからなくなってきて、わからんから、実行効率が一番良いやつにしよう、ということで、JavaScript風に、「何があっても関数はthisを保持しない」っていうふうにすることにした。
必要なときは、
function makemethod(obj,method) { return function(args) { obj.method(args); } }
ってやれば問題無いし。引数の数がうまくいかないけど…
何をどうしたらいいかわからんときは、実行効率が一番良いやつを選ぶ、というのは良いと思うのだが、どうだろうか。
実行効率が良いやつは、単純な仕組みになっているだろう。多分。多少使いにくかったとしても、ルールが単純ならば、困ることはない…はずだ、ということで。
あと、実行効率が良い、っていうのはそれ自身メリットになると思うし。