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 を使う複雑さを生むのでよくないのかなと思うけど。
本当に使い所ない

あと、これから花粉症がこわいですね。