ჯავასკრიპტის თითქმის ყველა თანამედროვე framework-ში, გვხვდება ეგრედ წოდებული factory ფუნქციები, ამ ბლოგში, შევეცდები მარტივი მაგალითებით ავხსნა თუ რას წარმოადგენს factory ფუნქცია და რითი განსხვავდება ის ჯავასკრიპტის კლასებისგან.
factory function (ქარხანა ფუნქცია) არის ფუნქცია, რომელიც აგენერირებს და აბრუნებს ობიექტს. თავად სახელწოდებაც პირობითადაა შერქმეული, ვინაიდან ეს ფუნქციები ქმნიან ობიექტებს.
factory ფუნქციების საშუალებით, შეგვიძლია შევქმნათ ობიექტი new
საკვანძო სიტყვის (keyword) ან constructor()
ფუნქციის გარეშე, ასევე არაა საჭირო გამოვიყენოთ this
საკვანძო სიტყვა.
მაგალითი:
ასევე ეს ფუნქციები ენკაფსულაციის საშუალებასაც გვაძლევს, რაც გულისხმობას, იმას, რომ გვქონდეს ე.წ. private ცვლადები და მეთოდები, მაგრამ constructor ფუნქციებისგან განსხვავებით factory ფუნქციებში არ შეგვიძლია გამოვიყენოთ inheritance.
მაგალითი:
პ.ს. მოცემული მაგალითებში არ არის სრულფასოვნად მოყვანილი ყველა ძირითადი განსხვავება კლსაებთან მიმართებაში, დეტალურ განსხვავებებს შემოგთავაზებთ ცალკე ბლოგში.