使用new關鍵字呼叫函式(new classa(…))的具體步驟:
1. 建立空物件;
var obj = {};
2. 設定新物件的constructor屬性為建構函式的名稱,設定新物件的__proto__屬性指向建構函式的prototype物件;
obj._ proto_ = classa.prototype;
3. 使用新物件呼叫函式,函式中的this被指向新例項物件:
classa.call(obj); //{}.建構函式();
4. 將初始化完畢的新物件位址,儲存到等號左邊的變數中
注意:若建構函式中返回this或返回值是基本型別(number、string、boolean、null、undefined)的值,則返回新例項物件;若返回值是引用型別的值,則實際返回值為這個引用型別。
new乙個物件的過程
class a public void a string name,int age class b 執行順序 1 因為new用到了 a.class,所以會先找到a.class檔案並載入到記憶體中 2 執行該類中的static 塊,如果有的話,給a.class類進行初始化。3 在堆記憶體中開闢空間,分...
new乙個物件的過程
1.靜態 塊 2.預設初始化 3.構造 塊 4.構造方法 靜態 塊先執行,構造 塊執行,物件內執行 class person static public class persondemo2 執行結果 列印 靜態 塊1 構造 塊2 建構函式3 class a public void a string ...
new乙個物件的過程
看一行 singleton instance newsingleton 在編譯這行 的時候,jvm實際上會分為三個步驟 1 宣告乙個引用變數instancesingleton instance告訴編譯器宣告乙個instance 這樣的singleton 型別的引用變數,其價值將待定,直到有乙個物件真...