2015-01-14 97 views
0
function foo(b) 
{ 
    return cool 
    (
     function(x) 
     { 
      if(x) 
      { 
       b(x); 
      } 
     } 
    ); 
} 

其中cool是一個接受函數的函數。這段代碼工作得很好。我怎樣才能做到這一點?javascript未嵌套功能範圍加寬

function bar(x) 
{ 
    if(x) 
    { 
     b(x); 
    } 
} 
function foo(b) 
{ 
    return cool(bar); 
} 

我想這樣做,因爲bar是從像foo功能頻繁使用的功能。是否有任何方法可以進一步打開示波器,以便bar可以從foo看到b

在一個函數,它 b作爲參數
+0

不幸的是我沒有訪問到'cool'功能。哦,這值得問。 –

+0

啊,我誤解了代碼,請忽略它。我以爲你正在返回一個叫'cool'的函數。看看丹尼爾的答案。 –

回答

3

bar:即

function baz(b) 
{ 
    return function(x){ 
     if(x) 
     { 
      b(x); 
     } 
    } 
} 

function foo(b) 
{ 
    return cool(baz(b)); 
}