LoginSignup
0

More than 3 years have passed since last update.

JavaScriptでFunction Oparation Pattern

Last updated at Posted at 2019-06-06

FOPをJavaScriptで書いてみた

FOPをJavaScriptで書くとどうなるかな、と思って書いてみました。
クラスや関数に大量のパラメータを渡す時に順番とか何を渡せば??というときとかに役に立つと思われます。
普通にObjectにパラメータを引き渡すでもOKだと思います。

nodeのバージョンは10で実行して動作確認しています。

generateParam.js
function returnParam() {
    var phrase = {};
    for (let i in arguments) {
        let obj = arguments[i]()
        phrase[Object.keys(obj)[0]] = Object.values(obj)[0]
    }
    return phrase;
};

function withUserId(value) {
    var value = value;
    return function () {
        return { "userId": value }
    };
};

function withSomeInfo(value) {
    var value = value;
    return function () {
        return { "something": value }
    };
};

module.exports = {
    returnParam: returnParam,
    withUserId: withUserId,
    withSomeInfo: withSomeInfo
};

呼び出し側

call.js
const i = require('./generateParam')

var result = i.returnParam(
    i.withUserId("user001"),
    i.withSomeInfo("someInfo001")
)
console.log("result", result);
//result { userId: 'user001', something: 'someInfo001' }

実行

cmd
node call.js

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0