工廠函式 建構函式

2021-09-26 15:28:03 字數 1136 閱讀 9376

顧名思義,就好比乙個工廠一樣,可以批量製造某種型別的東西。其實說白了就是封裝了個方法減少重複工作

function animal(name, ***) `)

} return obj

}let monkey = animal('猴子', '母')

console.log(monkey.name) //猴子

monkey.say***() //我的性別是母複製**

這樣寫主要是為了解決需要建立大量有屬性重疊的物件,如果每個都new一下,然後逐一新增屬性。這也是個累人的活。通過上面的**中,我們宣告了乙個animal方法,此方法可批量製造動物。這樣每次只需要簡單的一行**就可以搞定乙個動物的建立。 方便雖然方便,但是還是有缺點。

就是每次新建的時候都需要在內部建立乙個物件,然後進行一系列操作,最後返回。也就是說建立十次,那麼就會建立十次全新的物件,然後返回並賦值。這樣建立的十個物件在**間的關係是沒有的。而且跟animal函式也沒有任何關係了。只跟object有關係

應對某些場景,工廠函式並不能滿足我們,如:我需要判斷樹是不是動物型別,你會發現你並沒辦法。只能知道他是object。這時候建構函式就出現了

function animal(name, ***) `)

}}let monkey = new animal('猴子', '母')

console.log(monkey.name) //猴子

monkey.say***() //我的性別是母複製**

跟工廠函式很像,只是沒有了建立物件和return,並且都用this新增屬性。宣告新物件的時候通過new關鍵字。這樣做的好處是,新建的物件間是有關係的,我們檢測下:

console.log(monkey instanceof animal)     //true

console.log(monkey instanceof object) //true

複製**

我們可以看到,他的型別既是animal也是object。就好比你是你爸爸的後代,但同時也是你爺爺的後代。

know工廠函式and建構函式

工廠函式涉及到了設計模式級別的概念,無論是物件導向的程式設計還是面向過程的,都適用,而建構函式是語法級別的概念,需要物件導向的語法特性來支援,例子如下 1.工廠函式 function person fatory name,age,person.name name person.age age per...

工廠模式 建構函式入門

工廠模式 把乙個函式封裝好 等待例項化 好處 不用重複寫 function hanshu a,b,c return f var a hanshu 小明 18,學生 var b hanshu 小紅 28,技術 console.log a.name console.log b.name 總結 簡單的使用...

建構函式和工廠函式學習筆記

之前對建構函式和工廠函式有一定的困擾,究竟什麼是工廠函式什麼才算是建構函式。在網上查了他兩的區別後發現大多數講的都不盡人意,可以說是越看越懵,後來被我們老大看到了,很有意思的說,這個他們說的都不是那麼一回事,算了我來和你講吧。我問你,工廠主要是做什麼的?額 製造大量相同東西的 乙個地方?差不多,但不...