- 構造函數也是一個普通函數,建立方式和普通函數一樣,但構造函數通常習慣首字母大寫。
- 構造函數和普通函數的差別在于:調用方式不一樣,作用也不一樣。(構造函數用來建立執行個體對象)
- 調用方式不一樣。
- 普通函數調用方式:直接調用parson();
- 構造函數的調用方式:使用new關鍵字調用 new Parson();
- 構造函數的函數名和類名相同:Parson()這個構造函數,Parson即是函數名,也是這個對象的類名。
- 内部用this來構造屬性和方法
-
function Person( name, job, age){ this.name = name; this.job = job; this.age = age; this.sayHi = function(){ alert("Hi") } }
-
- 構造函數的執行流程
- 立即在堆記憶體中建立一個新的對象
- 将建立的對象設定為函數中的this
- 逐個執行函數中的代碼
- 将建立的對象作為傳回值
- 普通函數例子: 因為沒有傳回值,是以為undefined
-
function person(){} var per = person() console.log(per) //"undefined"
-
- 構造函數例子:構造函數會馬上建立一個對象,并将新對象作為傳回值傳回。
-
function Person(){} var per = new Person(); console.log(per); // [object, object]
-