1

js ファイルには、次のようないくつかのメソッド呼び出しがあります。

$("#id_1").someMethod({
  //some common hash values
  key1: "value1",
  key2: "value2",

  // some unique has values
  someKey1: "value123",
  someKey2: "value444"
})

// and so on

いくつかの共通のハッシュ値 (他のメソッドが持つもの) を持ついくつかのメソッドと、メソッドごとに異なるいくつかの一意のハッシュ値があります。

コードを簡素化するために、すべて同じハッシュ値を持ち、引数として追加のハッシュ値を受け取る関数を作成するにはどうすればよいですか?

更新: jquery を使用しても問題ありませんが、jquery なしで実現することに興味があります。

4

5 に答える 5

1

次のようなものを探しているようです。

var commonValues = {
    key1 : "value1",
    key2 : "value2"
};

function helperFunc(additionalOptions) {
    $("#id_1").someMethod($.extend({}, additionalOptions, commonValues));
}

helperFunc({ someKey1: "value123", someKey2: "value444" });

$.extend ドキュメント

jQuery を使用したくない場合は、 Underscore の _.extendextendなど、他の誰かの の実装を見て、独自のものを作成できます。

于 2013-07-06T15:50:04.330 に答える
0

「関数を作る方法」という表現を使ったので、それsomeMethodはあなたが書いた関数だと思います。その場合、関数が 2 つの引数を受け入れるようにすることができます。1 つは共通キー用で、もう 1 つは固有キー用です。次に、関数を使用しbindて共通キー オブジェクトを関数にバインドできます。

var obj = {};

obj.someMethod = function(commonKeys, uniqueKeys){
    console.log(commonKeys);
    console.log(uniqueKeys);
};

var newFunction = obj.someMethod.bind(obj, {key1: 1, key2: 2});

newFunction({ukey1: 1, ukey2: 2});

このようにして、共通キーが自動的に提供されている間、一意のキーでのみ呼び出すことができる新しい関数を作成します。

フィドル

于 2013-07-06T15:57:07.927 に答える