num = num + 1 の代わりに
1月2月は除雪でおわりました。(生存報告)
-
-
- -
-
こういうのなんて呼ぶんだろう
function myNumber (num) { return function (accessToNum) { if (accessToNum) num = accessToNum(num); return num; }; }
型判断とか端折っちゃったけど、はじめに設定した数値(num)をゴニョゴニョする関数を返す関数。
var n1 = myNumber(100); // プライベートに 100 を保持する関数を返す n1(function (_num) { // _num は n1 関数が保持している 数値。 return _num + 1; // ここで、保持している数値をインクリメント }); n1(function (_num) { console.log(_num); // n1 関数が保持している数値 101 を表示する });
使い所もわかってない。ただ、書いてて面白いなーと思ったのは、コールバック関数はプライベートな変数(この場合 num)と対話する機能を提供するものだな と。
よく使う機能としてメソッドを生やすこともできますね
var n2 = myNumber(10); n2.inc = function () { this(function (_num) { return _num + 1; }); return this; }; n2.say = function () { this(function (_num) { console.log(_num); }); return this; }; n2.say().inc().say(); // 11 を表示 -> インクリメント -> インクリメントした 12 を表示
this を使う複雑さを生むのでよくないのかなと思うけど。
本当に使い所ない
あと、これから花粉症がこわいですね。