0

私はこのようなものを書きたい:

function MyFunction () { .... return SomeString; }
function SomeFunction () { ... return SomeOtherString; }

function SomeCode() {

  var TheFunction;

  if (SomeCondition) {

    TheFunction = SomeFunction;

  } else {

    TheFunction = SomeCode;
  }

  var MyVar = TheFunction(); // bugs here
}

基本的に、変数 MyVar に呼び出された関数の結果が含まれるように、何らかの条件が評価された後に関数を実行したいと思います。

この作業を行うために何が欠けていますか?

ありがとう。

4

1 に答える 1

3

条件付きで関数を実行し、結果を保存することについて話しているだけの場合...

var result;

if( condition ){
   result = foo();
}else{
   result = bar();
}

var myVar = result;

呼び出す関数を決定したいが、別の機会まで呼び出さない場合は、次を使用します。

// define some functions
function foo(){ return "foo"; }
function bar(){ return "bar"; }

// define a condition
var condition = false;

// this will store the function we want to call
var functionToCall;

// evaluate
if( condition ){
   functionToCall = foo; // assign, but don't call
}else{
   functionToCall = bar; // ditto
}

// call the function we picked, and alert the results
alert( functionToCall() );

コールバックは JS で非常に便利です...基本的に、コールバックは消費者に「適切だと思うときにこれを呼び出す」ように伝えます。

jQuery メソッドに渡されるコールバックの例を次に示しますajax()

function mySuccessFunction( data ){
    // here inside the callback we can do whatever we want
    alert( data ); 
}

$.ajax( {
    url: options.actionUrl,
    type: "POST",

    // here, we pass a callback function to be executed in a "success" case.
    // It won't be called immediately; in fact, it might not be called at all
    // if the operation fails.
    success: mySuccessFunction
 } );
于 2012-08-17T04:31:40.170 に答える