建構函式的執行機制
阿新 • • 發佈:2020-10-22
function fn(name, age) { this.name = name; this.age = age + n; } var f = new fn("xxx", 18);
建構函式簡單的執行機制分為四個部分
第一步 => 首先形成一個私有的作用域(棧記憶體)
第二步 => (建構函式獨有) 在js程式碼自上而下執行之前,首先在當前形成的私有棧中建立一個物件(建立一個堆記憶體:暫時不儲存任何東西),並且讓函式中的執行主體(this)執行那個這個新的堆記憶體(this==建立的物件) 第三步 => 程式碼自上而下執行 第四步 => (建構函式獨有) 程式碼執行完成,把之前建立的堆記憶體地址返回(瀏覽器預設返回) 注意:建構函式執行,不寫return,瀏覽器會預設返回建立的例項,但是如果寫return 1、return一個基本型別值。返回的結果依然是類的例項,沒有受到影響 2、return一個引用值,則會把預設返回的例項覆蓋,此時接收到的結果就不再是那個例項了 建構函式執行的時候,儘量減少return的使用,防止覆蓋例項