我已經制作了這個腳本,但有一個問題。用javascript增加一個變量
當我點擊addbutton
時,控制檯日誌上的變量每次點擊都會收到更新(1,2,3,4)。
但是var fieldHTML
仍然是1,爲什麼?
var a = 1;
$(addButton).click(function(){ //Once add button is clicked
a++;
console.log(a);
});
var fieldHTML = a;
我已經制作了這個腳本,但有一個問題。用javascript增加一個變量
當我點擊addbutton
時,控制檯日誌上的變量每次點擊都會收到更新(1,2,3,4)。
但是var fieldHTML
仍然是1,爲什麼?
var a = 1;
$(addButton).click(function(){ //Once add button is clicked
a++;
console.log(a);
});
var fieldHTML = a;
var fieldHTML = a;
拷貝a
到fieldHTML
值。
它不創建參考。
更改值a
(在設置值fieldHTML
後)不會更改fieldHTML
的值。
我不明白,你可以做一個小例子? –
@MaurizioBenini - 一個什麼樣的例子?我只是描述你提供的例子。 – Quentin
有一種方法可以用增量值更新fieldHTML? –
var addButton = $("#btn");
var viewButton = $("#btn-2");
var setButton = $("#btn-3");
var a = 1;
var fieldHTML = a; // on load, addign a value to fieldHTML variable | fieldHTML = 1
$(addButton).click(function() { //Inc by 1
a++;
console.log('a : '+a);
});
$(viewButton).click(function() { //Show fieldHTML value in console
console.log('fieldHTML : '+fieldHTML);
});
$(setButton).click(function() { // reassign a value to the fieldHTML variable | on click event
fieldHTML = a;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='btn'>Inc a</button>
<button id='btn-3'>Set fieldHTML</button>
<button id='btn-2'>View fieldHTML</button>
您編寫它的方式,此代碼'var fieldHTML = a;'在窗口加載事件上執行。在增加'a'值之後,您必須**以某種方式將其值重新分配給'fieldHTML'。 – Robert
你需要一個ID或類適用於選擇,它包裝成文件準備好,還通過「一」的功能,然後可以操縱fieldHTML新價值值。查看我使用警報的片段註釋來演示增加的計數而不是console.log - 僅僅是因爲它在代碼片段中。
$(document).ready(function(){
var a = 1;
$('#addButton').click(function(){ //Once add button is clicked
a++;
alert("a = " + a);
update_fieldHTML(a);
});
})
function update_fieldHTML(value){
var fieldHTML = value;
alert("fieldHTML =" + fieldHTML);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="addButton">Click Me</button>
var addButton = $("#btn");
var viewButton = $("#btn-2");
var a = 1;
var fieldHTML = a;
$(addButton).click(function() {
fieldHTML = increment();
alert('a : ' + a);
});
$(viewButton).click(function() {
alert('fieldHTML : '+fieldHTML);
});
function increment(){
return ++a;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='btn'>Inc a</button>
<button id='btn-2'>View fieldHTML</button>
因爲'了'指向一個新的價值,但是'fieldHTML'仍然指向舊的。 – gurvinder372
[_始終傳遞值(即使該值是一個引用...)_](http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-按值語言) – Rayon
^除通過引用傳遞的對象和數組外。 –