構(gòu)造函數(shù)三個特征 單例模式構(gòu)造函數(shù)為什么要是私有的?
單例模式構(gòu)造函數(shù)為什么要是私有的?私有(Private)構(gòu)造函數(shù)是為減少誤用和猜測而設計的規(guī)則。您可以想象,當您的類有一個公共構(gòu)造函數(shù),并且您的文檔描述沒有那么詳細和清晰地告訴用戶應該使用靜態(tài)成員而不
單例模式構(gòu)造函數(shù)為什么要是私有的?
私有(Private)構(gòu)造函數(shù)是為減少誤用和猜測而設計的規(guī)則。
您可以想象,當您的類有一個公共構(gòu)造函數(shù),并且您的文檔描述沒有那么詳細和清晰地告訴用戶應該使用靜態(tài)成員而不是使用構(gòu)造函數(shù)來構(gòu)造實例(或用戶根本忽略的文檔)時,用戶會感到困惑。在這個時候,不穩(wěn)定的因素會埋在程序里,有時我們在這里很難找到它們。
如果您使用私有構(gòu)造函數(shù),當您嘗試轉(zhuǎn)到“新建”時,編譯器將立即阻止當前操作。
您可能認為自己使用它并不重要,但是當您在兩周內(nèi)回顧您的代碼時,如果沒有這個私有構(gòu)造函數(shù),您甚至可能會想,“為什么不能通過new使用這個對象?”
js放在構(gòu)造函數(shù)里面的私有方法,怎么在原型里面調(diào)用?
首先,在prototype對象中創(chuàng)建所有方法。不管生成多少實例,內(nèi)存中只有一個方法,但該方法不能訪問私有變量。其次,這種方法可以訪問私有變量,這不利于派生新實例不能訪問超類的私有變量和方法。另一種方法是通過關(guān)閉包來設置私有變量。新手,不要犯錯誤,多給點指導。最近,我在研究JS設計模式