老師并沒有定義變量var timer = null或aLi[i].timer = null
老師并沒有定義變量var timer = null或aLi[i].timer = null ?而直接obj.timer = setInterval
是隱身的定義變量嗎
這樣寫有什么優(yōu)點或缺點,
或者說這樣寫會出現(xiàn)怎樣的bug
老師并沒有定義變量var timer = null或aLi[i].timer = null ?而直接obj.timer = setInterval
是隱身的定義變量嗎
這樣寫有什么優(yōu)點或缺點,
或者說這樣寫會出現(xiàn)怎樣的bug
2016-05-11
舉報
2016-05-16
事實上對于javascript這樣的弱類型語言,使用var和不使用var都可以定義一個變量,在函數(shù)內使用var定義的變量是一個局部變量,不使用var定義的變量是一個全局變量,而obj.timer = setInterval這種方式算不上定義,這里obj已經(jīng)是一個對象了,obj.timer代表為這個對象創(chuàng)建一個屬性,然后才能使用這個屬性,我們可以為它創(chuàng)建很多屬性,根據(jù)需要來。ps:大多時候我們想自定義一個對象,可以這樣寫:var myobj1 = Object();然后為你的對象添加屬性,如myobj.number=2016等等,還可以用另外一種方法定義對象,如:var myobj2 = {name:"Joh",number:"146"};這對話括號里的name和number就是對象myobj2的屬性"Joh","146"就是值,而且值可以是任何數(shù)據(jù)類型,用得較多的就是函數(shù)了。如果你想了解更多,就去看看《DOM編程藝術》這本書。
2016-05-12
這樣寫的意思是timer成了obj這個對象的一個屬性,=號后面是為obj對象的timer屬性賦值。