一、什么是構造函數
在一些面向對象的語言,如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 對象
主站蜘蛛池模板:
任丘市|
漠河县|
五峰|
永济市|
攀枝花市|
博野县|
西峡县|
吴忠市|
通州区|
台南市|
萍乡市|
石城县|
沂南县|
绥中县|
香河县|
邻水|
桦甸市|
盐津县|
孟津县|
赤城县|
东莞市|
博客|
静安区|
泸溪县|
元谋县|
涡阳县|
隆回县|
炉霍县|
博湖县|
永仁县|
珠海市|
阳城县|
景宁|
惠水县|
阳江市|
澄江县|
南昌市|
安徽省|
德安县|
阿尔山市|
湖州市|