想透過直接將一個全域變數當作函數的參數,然後在函數的內部給這個參數賦值,而不是直接在函數內部給全域變數賦值,這樣就不會寫死,但是測試無法賦值。
s = 1; a(s); function a(m){ e = m; b(e); function b(f){ f = 2; } } alert(s);
這樣的結果是s還是等於1。我知道直接在函數裡可以對s賦值,但是那樣不就寫死了嗎,這樣寫要怎麼才能給s賦值2呢?方便以後可以傳遞不同的全域變數來使用。
菜鸟-吉2017-09-04 08:24:51
你沒明白函數參數傳遞的內涵:值傳遞,也就是說S只是把1給了函數A,本身並沒有參與進去。通俗點說:複製了一個S給函數,不管你怎麼操作,是不會影響S本身的。