javascript學習筆記:new運算符

作爲一個學習過其他語言的程序員來說,對new肯定不陌生。 我一度也是這樣。

但是前兩天突然想到這樣的代碼時,我就懵了。


function Person(name){
 this.name = name;
}

var p1 = new Person("mike");
var p2 = Person("jack"); /*這個不會報錯,這裏Person作爲函數被調用,該函數沒有返回任何值,所以p2是undefined,作爲一個java程序員,我當時在這裏確實懵了*/
console.log(p1);
console.log(p2);


之所以有疑惑,還是因爲對javascript的函數理解不夠。

經過查閱資料,就是作爲參考書的《JavaScript權威指南(第五版)》,大概弄清楚了,但是還不夠清楚。

1、 new是一個運算符,它首先創建一個對象,該對象的屬性都未定義,接下來,它將調用特定的構造函數,傳遞指定的參數,此外還要把新創建的對象傳遞給關鍵字this。這樣構造函數就可以使用關鍵字this來初始化新對象。

2、沒有參數時,可以省去括號。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章