在我指定我正在努力工作之前,讓我告訴你我的JavaScript代碼。JavaScript,通過函數訪問全局變量
var gVar = 0;
$("#plus").click(function(e) {
e.preventDefault();
gVar = gVar + 1;
alert(gVar);
});
$("#minus").click(function(e) {
e.preventDefault();
gVar = gVar + 1;
alert(gVar);
});
在上面的代碼,我首先設置一個全局變量「GVAR」保持爲零的整數值。每當我點擊一個ID爲「plus」的按鈕時,全局變量'gVar'的值將增加1,這會在瀏覽器的對話框中打印出來。
同樣的事情會發生的ID爲「負」,除了「GVAR」的價值將會由1
遞減。在我試圖整理代碼上面的按鈕,我創建了一個函數分開,每當我點擊兩個按鈕時會被調用。這裏是代碼。
var gVar = 0;
var weird = function (button, Var, num1) {
$(button).click(function(e){
e.preventDefault();
Var = Var + num1;
alert(Var);
});
};
weird("#plus", gVar, 1);
weird("#minus", gVar, -1);
當我運行此代碼時,'gVar'的值永遠不會改變,並始終保持'0'。
我想我隱約知道這裏的問題是什麼,但不完全確定是什麼導致了這個問題。任何意見將非常感謝,以澄清這個問題對我來說。
另外,我很好奇,是否有任何方法可以創建一個函數來實現相同的效果,而不是爲兩個不同的點擊事件編寫兩次類似的代碼。
這是一個int;該參數將不是全局值。你可以創建一個帶有計數器的全局對象。 –
我認爲簡單的類型參數(在你的情況下int)不是通過引用傳遞給函數,這就是爲什麼你需要傳遞一個對象類型參數給函數,因爲@DaveNewton按對象寫了 –