2017-02-24 29 views
0

我對JavaScript比較「新」,想知道在功能中加入if是否需要添加任何內容。這是我的代碼。我希望能夠使用一個函數來調用另一個提醒頁面的函數。Javascript:當在功能中添加if時,是否需要添加任何內容?

function Function() { 
    var var1 = Math.floor((Math.random() * 10) + 1); 
    document.getElementById("paragraph1").innerHTML = var1; 
    Functions(); 
} 

function Functions() { 
    if (var1 == 1) { 
    Question1(); 
    } 
} 

function Question1() { 
    alert("works"); 
} 

感謝高級!

+3

您需要了解一些關於變量範圍的內容。 'Function'中的'var1'不能從'Functions'中獲得。這將是如果JS有動態範圍,但事實並非如此。 – 2017-02-24 22:59:47

+0

不,但'函數'不能訪問'var1'。您必須將其作爲來自'Function'的參數傳遞。 – adrice727

+0

除非是構造函數,否則它也習慣於不使funcs大寫 – pixelearth

回答

1

您的問題與if不符,但具有可變範圍。

var聲明的變量是函數的局部,它們不能從另一個函數訪問。您應該將該值作爲參數傳遞給其他函數。

function Function() { 
    var var1 = Math.floor((Math.random() * 10) + 1); 
    document.getElementById("paragraph1").innerHTML = var1; 
    Functions(var1); 
} 

function Functions(var2) { 
    if (var2 == 1) { 
    Question1(); 
    } 
} 

function Question1() { 
    alert("works"); 
} 
0

有關變量的作用域快速教訓:變量只存在於他們在

正因爲如此定義的範圍,在你的Functions變量var2定義將是不確定的。

兩種溶液

  1. 穿過參數可變的,即在調用Functions時,通VAR2通過像Functions(var2)的參數,和卡函數體內的值
  2. 定義var2全球範圍內,所以兩者的功能可以看到價值。雖然這通常被認爲是不好的做法