在es6中,建構函數是一種特殊的函數,主要用來初始化對象,也就是為對象成員變數附初始值,其函數名稱的第一個字母通常會大寫,且總和new一起使用。一個函數只有在配合new運算元呼叫時才能當作一個建構函數,如果不使用new運算符,就只是一個普通函數。
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
建構函數是一種特殊的函數,主要用來初始化對象,也就是為物件成員變數附帶初始值,它總是與 new 一起使用。 我們可以把物件中一些公共屬性和方法抽取出來,然後封裝到這個函數裡面。
建構函數的函數名稱的第一個字母通常會大寫。
當建構函式呼叫時,必須與 new 運算子搭配使用。一個函數只有在配合 new 操作符呼叫時才能當作一個建構函數,如果不使用 new 操作符,則只是一個普通函數。
一個函數當作建構函式使用時,能透過 new 運算子建立物件的實例,並透過實例呼叫對應的函數。
// 构造函数 function Person(name, age) { this.name = name; this.age = age; this.sayName = function () { alert(this.name); }; } var person = new Person('kingx', '12'); person.sayName(); // 'kingx'
一個函數在當作普通函數使用時,函數內部的 this 會指向 window。
Person('kingx', '12'); window.sayName(); // 'kingx'
使用建構函式可以在任何時候創建我們想要的物件實例,建構函式在執行時會執行以下4 步驟:
透過new 運算子創建一個新的對象,在記憶體中建立一個新的地址。
為建構子中的 this 決定指向。
執行建構子程式碼,為實例新增屬性。
傳回這個新建立的物件。
以前面產生 person 實例的程式碼為例:
第一步:為 person 實例在記憶體中建立一個新的位址。
第二步:決定 person 實例的 this 指向,指向 person 本身。
第三步:為 person 實例新增 name、age 和 sayName 屬性,其中 sayName 屬性值是一個函數。
第四步:傳回這個 person 實例。
註:在建構子中為this 新增了一個sayName 屬性,它的值為一個函數,這樣在每次建立一個新的實例時,都會為實例新增一個sayName 屬性,而且不同實例中的sayName 屬性是不同的。
【相關推薦:javascript影片教學、web前端】
以上是什麼是es6中的建構函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!