var Stars = new Array(1,2,3,4,5,6,7,8,9,10);
var StarsX = new Array(451,455,460,470,490,100,160,220,280,300);
var StarsY = new Array(451,455,460,470,490,480,390,330,200,120);
var Starsm = Stars
var StarsmX = StarsX
var StarsmY = StarsY
//just shows the output of the variables in a text field
function contpost(){Tfield.innerHTML=Stars + "<br/>" + StarsX + "<br/>" + StarsY + "<br/>" + Starsm + "<br/>" + StarsmX + "<br/>" + StarsmY;}
//cycles through the "for" loop and posts the variables
function newpost(){
for (var i=0;i<Stars.length;i++){
StarsmX[i] = StarsX[i] + 10;
StarsmY[i] = StarsY[i] + 10;
}
contpost()
}
var Tfield= (This is the text field)
var canv_one= (This is a canvas in my document)
canv_one.addEventListener('click', newpost);
如果我運行這個代碼(Firefox 9),if/then循環將「mX」變量和「X」變量都加10。Javascript變量聲明問題
我現在知道大約是怎麼做的。這只是因爲我很早就設定了他們。當我在聲明中替換它時,它正常工作:
var Starsm = new Array()
var StarsmX = new Array()
var StarsmY = new Array()
我不明白的是爲什麼javascript會這樣做。對我來說,如果你把它們設定爲平等一次,在全球宣言期間,它們不會在以後重新相同(並且在後面做這件事,我從來沒有將StarsX設置爲StarsmX。)
I' m非常確定這意味着我不瞭解Javascript的某種基本功能,這讓我很擔心。
任何人都可以幫忙嗎?
只是一個預留:創建陣列的優選語法爲當'[]'而不是'新的Array()'(短,容易閱讀,並且避免了該問題,其中主叫'新陣列(5)'創建一個數組與五個元素,而不是一個元素的值爲5)。所以'var Stars = [1,2,3,4,5,6,7,8,9,10];'和'var Starsm = [];' – nnnnnn 2011-12-29 03:31:11
OK。我會稍後回去改變它。我基本上從我可以谷歌學習JavaScript。 ...最佳實踐並不總是很清楚。 – Brightstar 2011-12-29 03:32:51
很酷。你可能想看看MDN:https://developer.mozilla.org/en/JavaScript/Guide。此外,Google提示:如果您想了解某些JavaScript關鍵字或功能,請在您的Google搜索字詞的末尾添加「mdn」或「mdc」,例如「array mdn」 - 這樣可能會帶來MDN關於該關鍵字/功能的頁面放在搜索結果的頂部 - 通常您甚至不需要單詞「javascript」。 – nnnnnn 2011-12-29 03:42:54