js的構造函數
構造函數: 構造函數只是一些使用new操作符時被調用的函數 ----- 來自《你不知道的js》
new關鍵字
new操作符執行時進行的操作: (來自MDN new操作符)
- 創建一個空的簡單JavaScript對象(即{});
- 鏈接該對象(即設置該對象的構造函數)到另一個對象 ;
- 將步驟1新創建的對象作為this的上下文 ;
- 如果該函數沒有返回對象,則返回this
構造函數返回值
- 如果不寫return -> 直接返回默認創建的新對象
function foo(){
var obj = {'name': 'kenan'};
}
var result = new foo();
result; // ==> foo對象
- 如果返回this -> 直接返回默認創建的新對象
function foo(){
var obj = {'name': 'kenan'};
return this;
}
var result = new foo();
result; // ==> foo對象
- 如果返回的是基本數據類型: 直接返回默認創建的新對象
function foo(){
var obj = {'name': 'kenan'};
return 1000;
}
var result = new foo();
result; // ==> foo對象
- 如果返回到是對象 -> 直接把這個對象, 返回給外界, 外界接受到的就是這個函數內部返回的對象
function foo(){
var obj = {'name': 'kenan'};
return obj;
// return [1,2,3] // 若是直接返回數組[1,2,3], result輸出[1,2,3]
}
var result = new foo();
result; // ==> {'name': 'kenan'}