0

ハッシュとして表される引数を関数に適用したいと思います。

たとえば、次の関数を呼び出したいと思います。

myFunc = function(a,b,c) { return b }

これに似た方法で:

myFunc({a:1, b:2, c:3})

JavaScriptでこれを行う方法はありますか?

4

1 に答える 1

1

一般に、関数内の位置引数をオブジェクト内のキーと値のペアに関連付けることはできません。

両方の方法で引数を取るように関数を構成することが可能です:

myFunc = function (objOrA, b, c) {
    var a = objOrA;
    if (objOrA.a || objOrA.b || objOrA.c) {
        a = objOrA.a;
        b || (b = objOrA.b);
        c || (c = objOrA.c);
    }
    return b;
};

ただし、関数定義を制御できる場合、最も簡単な解決策は、何があってもオブジェクトを唯一のパラメーターとして要求することです。

myFunc = function (options) {
    return options.b;
}
于 2013-01-23T22:55:17.297 に答える