js中的靜態變數

鴨脖發表於2012-06-30

靜態變數即為某個類所擁有的屬性,通過 類名+"."+靜態變數名 的方式訪問該屬性。如下可以做清晰的解釋:

function BasicInfo(name,age,from)
{
this.name = name;
this.age = age;
this.from = from;
}
BasicInfo.generalInfo = "is 3zfp owned object";
var basic = new BasicInfo("zfp",100,"ShenZhen");
document.write(basic.generalInfo+"<br>");
document.write(BasicInfo.generalInfo+"<br>");
BasicInfo.generalInfo = "info is changed";
document.write(BasicInfo.generalInfo+"<br>");
執行以上程式碼,將會得到如下結果:
undefined
is 3zfp owned object
info is changed

注意以下幾點:
1、以 類名+"."+靜態變數名 的方式來宣告一個靜態變數
2、靜態變數並不屬於類的某個例項物件所獨有的屬性,為物件的共享.
3、不能以例項物件名+"."+靜態變數名來訪問。

js特殊的作用域

function foo() {
            var sum = 0;
            for (var index = 0; index < 10; index++) {
                sum += index;
            }
            document.write("index is :" + index + "<br>");
            return sum;
}
foo();
index值("index is :10"),這個是js和其他語言的不同地方,因為index是在for迴圈的{}外面定義的,因此其作用範圍在foo()函式使用完畢後才銷燬。

相關文章