一、什么是構造函數
在一些面向對象的語言,如Java、C++、PHP中,構造函數是很常見的。在Javascript中構造函數首先是一個普通的函數,它可以使用new 操作符來調用,并生成一個特殊類型的對象。
在上面這個實例中benjamin是一個Benjamin對象,那么它是如何來實例化的呢?
正如我們所看到的,“Benjamin”構造函數僅僅是接收傳遞過來的參數,并把它們賦值給this對象。這是因為當構造函數被new操作符調用時,構造函數的this對象賦值為new操作返回的對象。
這意味著上面的代碼等同于:
二、為什么使用構造函數
為什么使用構造函數,有以下幾個方面的原因:
1.使用構造函數,意味著所有的這些對象,都可以使用相同的基本結構創建
2.使用構造函數,意味著“benjamin”對象被明確的標記為“Benjamin”函數的實例
3.使用構造函數,意味著我們可以在原型上定義公共方法,供多個實例共享
三、注意事項
1.new 關鍵字
在實例化構造函數的時候一定不要忘了使用new關鍵字,是否使用new關鍵字,對this對象的影響很大,不用new關鍵字的情況下,this對象會指向全局對象(window in browser and global in node)。因此定義構造函數時,建議函數名稱首字母大寫。
2.如果被調用的函數沒有顯式的 return 表達式,則隱式的會返回 this 對象
主站蜘蛛池模板:
金阳县|
黄山市|
资兴市|
乌海市|
和平县|
临汾市|
浦东新区|
台东县|
西城区|
南召县|
静乐县|
陇川县|
灌云县|
洞头县|
双城市|
望谟县|
吕梁市|
南阳市|
赤水市|
岳普湖县|
襄汾县|
永清县|
株洲县|
汤原县|
青海省|
金山区|
句容市|
巴里|
余姚市|
库尔勒市|
福贡县|
微博|
屏东市|
深州市|
成都市|
阿合奇县|
砀山县|
盐池县|
宁陵县|
肃宁县|
牙克石市|