構造函數:如用函數用來初始化(使用new運算符)一個新建的對象,咱們稱之爲構造函數(constructor)函數
普通函數:不使用new運算符的函數就是普通函數this
從形式上看,
一個函數被做爲構造函數仍是普通函數執行的惟一區別就是是否使用new3d
當以new調用構造函數(執行var p = new Person())時,函數內部會發生如下狀況:cdn
1.建立一個空對象對象
2.this變量指向對象pblog
3.p繼承了構造函數Person()的原型繼承
4.執行構造函數Person()內的代碼原型
1.構造函數使用new關鍵字調用;普通函數不用new關鍵字調用;it
2.構造函數內部能夠使用this關鍵字;普通函數內部不建議使用this,由於這時候this指向的是window全局對象,這樣無心間就會爲window添加了一些全局變量或函數io
3.構造函數默認不用return返回值;普通函數通常都有return返回值
4.構造函數首字母建議大寫;普通函數首字母建議小寫