1

私が実行するときのjqueryで:

$('li').each(some-function(i){});

IDEは、一部の関数がインデックスを期待していることを認識しているようです。

特定のパラメーターを期待するパラメーターの1つとして関数を期待する関数をjavascript/jqueryで作成できると私は信じています。(私はjavascriptを初めて使用します)

私はC言語でそれを行う方法を知っています。

私はこのようなものを探しています:

void somefuncA ( void (*funcB)(int) ){
    //do stuff with funcB
    (*funcB)(5);
}

したがって、関数'somefuncA'は、パラメーターとして1つの整数を取得し、何かを実行する関数funcBを取得することを期待しています。

それが理にかなっていることを願っています..ありがとうpsJavaScriptは弱い型であることを知っていますが.each()、関数をパラメーターとして、関数だけでなくintをパラメーターとして期待していることにも気づきました。

4

3 に答える 3

1

特定のパラメーターを期待するパラメーターの1つとして関数を期待する関数をjavascript/jqueryで作成できると私は信じています。

ここでデリゲートについて話しているかもしれません。関数はJavaScriptのファーストクラスのオブジェクトです。他のいくつかの言語のように、タイプセーフなポインタを定義していません。関数は必要な数のパラメーターを定義できますが、1つでも渡す必要はありません。スキップされたパラメータは未定義になります。また、リターンタイプも定義していません。関数は値を返す場合と返さない場合があります。

IDEは、関数呼び出しを見つけて、提供されているパラメーターのヒントを提供するのに十分賢いです。関数でこれらのパラメーターを自由に使用またはスキップできます。

$('li').each(function(){
   // do something
});

ここでは、パラメーターを受け取らない無名関数を作成します。jQueryは内部にインデックスまたはその他のパラメータを渡しますが、エラーは発生しません。jQueryが提供するインデックスパラメータを使用する関数を作成することもできます。

$('li').each(function(index){
   // do something
});
于 2012-06-20T11:31:47.637 に答える
0

あなたが求めているのはこのようなものですか?

function somefuncA ( funct, parameters ){
    //do stuff with funcB
    alert(funct(parameters));
}

これは主にJavaScriptのコールバックに使用されます。

于 2012-06-20T11:17:39.147 に答える
0
function ​myFunc​(fn, param)
{
    if (typeof fn != "function") {
        throw new TypeError();
    }
    fn.call(this, param);
}

2つのパラメーターを使用して呼び出しmyFucnます。最初のパラメーターは関数で、2番目のパラメーターはそのパラメーター'Hello'です。

myFunc(function(m){
    alert(m);
}, 'Hello!');​

デモ。

于 2012-06-20T11:25:11.347 に答える