0

私はjsでjqueryと一般的にjavascript関数のセットを持っています。今、私はいくつかの機能が何らかの条件で利用可能になるのを避けたいと思っています。例えば:

function test () {
    alert("hi");
}

function avoid () {
   if(condition)  {
     //here avoid to call test
   }
}

ありがとう

4

2 に答える 2

1

エラーなしで関数を削除したい場合 (関数の呼び出し元が返される結果を予期していない場合)、次のようにすることができます。

function avoid () {
   if(condition)  {
     test = function(){}; // does nothing
   }
}

avoid関数が別のスコープにある場合は、適応が必要になる場合があることに注意してください。たとえばtest、グローバル スコープで定義されている場合は、次のようにします。window.test = function(){};

于 2012-12-03T16:04:04.300 に答える
0

あなたの質問をよく理解できたかどうかはわかりませんが、テスト関数の呼び出しが以下のような回避関数内にある場合:

function test () {
    alert("hi");
}

function avoid () {
   if(condition)  {
     //here avoid to call test
    return false;
   }
   test();
}

次に、単純な return false で問題を解決できます。関数がイベントを使用しているかどうかはわかりませんが、その場合は、 preventDefault と return false について読むことができる良い投稿です :ここにリンクの説明を入力してください

テストが以下のように回避の同じレベルにある場合:

function test () {
alert("hi");
}

function avoid () {
   if(condition)  {
     //here avoid to call test
    return false;
   }
   return true;
}

// below is your functions call
   check =  avoid();

   if(check){
    test();
   }

この投稿では、関数を終了する方法について説明しています:ここにリンクの説明を入力してください

それが役立つことを願っています。

于 2012-12-03T16:14:36.120 に答える