首頁 >web前端 >前端問答 >什麼是es6中的建構函數

什麼是es6中的建構函數

青灯夜游
青灯夜游原創
2022-05-05 17:06:221880瀏覽

在es6中,建構函數是一種特殊的函數,主要用來初始化對象,也就是為對象成員變數附初始值,其函數名稱的第一個字母通常會大寫,且總和new一起使用。一個函數只有在配合new運算元呼叫時才能當作一個建構函數,如果不使用new運算符,就只是一個普通函數。

什麼是es6中的建構函數

本教學操作環境: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn