25

次のようにして、ロード時にjs関数を自動起動できることを多くの場所で読みました。

$(function() {
    // code...
});

または

var myFunc = function() {
   // code...
}();

私の質問は、後でこれらの関数をどのように呼び出すのですか? 簡易申告なので

function myFunc() {
    // code...
}

簡単に呼び出すことができますが、自動起動しません。ロード時に手動でそれらすべてを呼び出す必要がありますが、これは煩わしく、コード内でスペースを取り、1 つ忘れるとエラーの原因になる可能性があります。

私の説明が理解できない場合は、次の例をご覧ください。

フォームに「体重」と「身長」フィールドがあり、BMI (Body Mass Index) を計算する必要があります。ページが読み込まれると、重量と高さがデータベースによって入力され、すべての準備が整ったら計算を開始します。ただし、後でユーザーが体重または身長を変更した場合、BMI はすぐに再計算する必要があります。それを行う最良の方法は何ですか?jquery または純粋な JS を使用してもかまいません。

ありがとう。

4

1 に答える 1

45

再利用可能な即時機能

var reference = (function thename(){

    //function body

    return thename; //return the function itself to reference

}()); //auto-run


reference(); //call it again
reference(); //and again

関数を呼び出すと、呼び出したばかりの関数への参照が返されることに注意してください。

var anotherReference = reference(); //anotherReference === reference
于 2012-05-22T14:22:39.503 に答える