剛看網易公開課stanford程式設計方法學的第九課
提到static靜態變數和instance variable例項變數,我想js肯定也有 研究了一下,如下:
靜態變數static是class的所有object都共享的,那麼在靜態變數static只能定義在建構函式外面,但是又要只能被同乙個class共享,故要用閉包(建構函式能讀取上層變數)加立即執行函式(避免外部汙染靜態變數)形式。
var myclass = (function () ;
this.getname = function (name) ;
};})();
var o1 = new myclass();
var o2 = new myclass();
o1.name // 私有靜態變數
o1.setname('改變了');
o1.name //私有靜態變數
o1.getname() ;//改變了
var o2 = new myclass();
o2.getname(); // 改變了
共有靜態變數就是classname.name
私有例項變數
function myclass() ;
} myclass.prototype._getvalue = function () ;
var o1 = new myclass();
o1.getvalue(); //3
o1._getvalue() ;//undefined
Javascript靜態變數與例項變數
嚴格的來講,js裡面並沒有靜態與私有的概念,所有成員屬性都是公開的,下面只是參考oo語言,通過某種方式來實現類似的概念。一。靜態變數 1.私有靜態變數 所有例項共享。因為是私有的變數,所以不能通過函式名直接訪問。通過閉包來實現。根據閉包的作用域原理,只能在閉包內部訪問。所以,並不是類的任何地方都可以...
靜態變數與動態變數
1 靜態儲存變數通常是在變數定義時就分定儲存單元並一直保持不變,直至整個程式結束。靜態變數,全域性動態變數都是靜態儲存 2 動態儲存變數是在程式執行過程中,使用它時才分配儲存單元,使用完畢立即釋放 3 靜態儲存變數是一直存在的,而動態儲存變數則時而存在時而消失。通常把由於變數儲存方式不同而產生的特性...
靜態變數與動態變數
1 靜態儲存變數通常是在變數定義時就分定儲存單元並一直保持不變,直至整個程式結束。靜態變數,全域性動態變數都是靜態儲存 2 動態儲存變數是在程式執行過程中,使用它時才分配儲存單元,使用完畢立即釋放 3 靜態儲存變數是一直存在的,而動態儲存變數則時而存在時而消失。通常把由於變數儲存方式不同而產生的特性...