2017-02-14 4 views
-1

関数を作成する必要がある場合は、引数として別の関数fnを取り込むmaybe()とし、 fnの引数が未定義またはnullでない場合、fnの引数が未定義であるかどうかをどのように決定する必要がありますか?引数として別の関数に渡された関数の引数が未定義であるかどうかを調べる方法

function maybe(fn) { 
    return fn; 
} 

function fn(firstName, lastName) { 
    return `${firstName} ${lastName}`; 
} 

// this will print, firstName Lastname  
console.log(maybe(fn)("firstName","Lastname")); 

// it will print undefined Lastname 
console.log(maybe(fn)(undefined, "Lastname")); 

どのように私は多分fnの引数のいずれかがundefinedまたはnullと任意のがあればfalseを返すかどうかをチェックする機能を変更することができますか?

fnは、maybe関数に渡される外部関数であるため、渡されたargsを除いて、fn関数を変更することはできません。

答えて

2

あなたは持っているmaybe(fn)ラッパー関数を返すことができます

function maybe(fn) { 
    return function() { 
     for (var i = 0; i < arguments.length; ++i) { 
      if (arguments[i] == null) { 
       return false; 
      } 
     } 

     return fn.apply(this, arguments); 
    }; 
} 
+0

感謝を!!!! 1を!!!!! –

+0

@QiuxuanChen私の答えが助けになったら、私の答えを受け入れる気がしますか? – mc10

関連する問題