首頁  >  問答  >  主體

全域變數作為參數在函數內部如何賦值?

想透過直接將一個全域變數當作函數的參數,然後在函數的內部給這個參數賦值,而不是直接在函數內部給全域變數賦值,這樣就不會寫死,但是測試無法賦值。

s = 1;
a(s);
function a(m){
    e = m;
    b(e);
    function b(f){
        f = 2;
    }
}
alert(s);

這樣的結果是s還是等於1。我知道直接在函數裡可以對s賦值,但是那樣不就寫死了嗎,這樣寫要怎麼才能給s賦值2呢?方便以後可以傳遞不同的全域變數來使用。

按键盘手指磨破皮按键盘手指磨破皮2577 天前1931

全部回覆(2)我來回復

  • Time丶Out

    Time丶Out2017-09-07 04:46:41

    JS 物件作用域,好好看下~

    回覆
    0
  • 菜鸟-吉

    菜鸟-吉2017-09-04 08:24:51

    你沒明白函數參數傳遞的內涵:值傳遞,也就是說S只是把1給了函數A,本身並沒有參與進去。通俗點說:複製了一個S給函數,不管你怎麼操作,是不會影響S本身的。

    回覆
    1
  • 取消回覆