代碼如下: function Student(name,age,from) { this.name = name; this.age = age; this.from = from; this.ToString = function() { return "my information is name: "+this.name+",age : "+this.age+", from :" +this.from; } } Student類有三個變量,分別為name(名字),age(年齡),from(籍貫),這三個變量構(gòu)成了描述一個對象的信息。當然,這里還有一個方法用來返回Student的信息。 但是,我們是不是定義了一個變量,它就能一直存在著,并且還有可能在任何地方都能被訪問和使用直到其被銷毀?仔細想想,上面的需求是比較過分的,因為某些變量在某個功能實現(xiàn)后就不再利用了,但如果這個變量還存在的話,就占用了系統(tǒng)資源了,俗語曰:“站著茅坑不拉#$%”。 于是我們對變量的及時和按需求地銷毀有一個探討的話題了。 好,切入正題吧,就本人所接觸過的來講,js中支持如下幾種類型的變量,分別為:局部變量、類變量、私有變量、實例變量、靜態(tài)變量和全局變量。接下來我們就一一探討研究下。
局部變量:
局部變量一般指在{}范圍內(nèi)有效變量,也就是語句塊內(nèi)有效的變量,如:
代碼如下:function foo(flag) { var sum = 0; if(flag == true) { var index; for(index=0;index<10;index++) { sum +=index; } } document.write("index is :"+index+"<br>"); return sum; } //document.write("sum is :" +sum+"<br>"); document.write("result is :"+foo(true)+"<br>"); 該代碼執(zhí)行后輸出的結(jié)果為:“index is :undefined” 和 “result is :0”,我們可以看到希望輸出的index變量的值為undefined,也就是未定義。因此我們可以發(fā)現(xiàn),index變量在if語句塊結(jié)束后即被銷毀了。那么“sum”變量呢?這個變量在foo()函數(shù)段執(zhí)行完畢后被銷毀了,如果您去掉我注釋的那條語句,再執(zhí)行,您將會發(fā)現(xiàn)系統(tǒng)將報錯。值得注意的是,如果我把上面的foo()函數(shù)改成如下:
代碼如下:function foo(flag) { var sum = 0; for(var index=0;index<10;index++)