JavaScript建構函式和普通函式的區別

admin發表於2018-01-24

這兩者之間的區別可能對於初學者有一定的困擾,其實區分兩者是非常簡單的,下面就簡單介紹一下。

無論是建構函式還是普通函式,它們總歸是函式,它們的呼叫方式決定了它們是哪種型別,先看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function func(name,address){
  this.webName=name;
  this.webAddress=address;
}

以上程式碼是一個函式的宣告,它就是一個函式,不過它的使用方式決定了它是否是建構函式:

一.建構函式:

[JavaScript] 純文字檢視 複製程式碼
var myOb=new func("螞蟻部落","青島市南區");
myOb.webAddress;//青島市南區
myOb.webName;//螞蟻部落

通過new操作符來呼叫函式,那麼這個函式就是作為建構函式來使用。也就是說任何函式都可以作為建構函式。

二.普通函式:

[JavaScript] 純文字檢視 複製程式碼
func("螞蟻部落","青島市南區");
window.webName;//螞蟻部落
window.webAddress;//青島市南區

這裡的就是作為普通函式使用,this是指向window物件的。

總結:

它們兩者的區別就是如此簡單,使用new操作符呼叫的就是作為建構函式使用,其他的使用方式就是普通函式。任何函式都可以作為建構函式和普通函式使用。

相關文章