2017-07-16 62 views
-3
function a() { 
    var a = 1; 
    console.log(a); 
    var b = function() { 
     console.log(a); 
     var c = function() { 
      console.log(a); 
     } 
    } 
} 
a(); 
b(); 
c(); 

嘗試調用所有3個函數,這也不起作用,它表示b沒有定義;簡單的示波器練習

+4

因爲'b'和'c'沒有被調用 - 只在其各自的內部範圍內聲明。 –

+0

您定義了三個函數,但您只調用其中一個函數('a')。爲了記錄所有三次,您還需要'b()'和'c()'。 –

+0

這是Stack Overflow Community的「練習」嗎?這**問答**網站,而不是**運動解決方案**。 – sudo

回答

0

其未定義,因爲您缺少範圍的要點。 b作爲功能僅在a內部可用。作爲功​​能的c僅在b內可用。例如,下面的代碼會很好。

function a() { 
    var a = 1; 
    console.log(a); 
    var b = function() { 
     console.log(a); 
     var c = function() { 
      console.log(a); 
     } 
     c(); // c is available because we are inside the function b 
    } 
    b(); // b is available because we are inside the function a 
    } 
a(); 

你或許應該做的範圍周圍一些閱讀,如果你不明白這是一個非常基本的JavaScript中的關鍵設備。

+0

謝謝,這真的很有幫助! – stackit