გამოიწერე YouTube-ის არხიyoutube logoგამოწერა
factory ფუნქციები ჯავასკრიპტში

factory ფუნქციები ჯავასკრიპტში

ჯავასკრიპტის თითქმის ყველა თანამედროვე framework-ში, გვხვდება ეგრედ წოდებული factory ფუნქციები, ამ ბლოგში, შევეცდები მარტივი მაგალითებით ავხსნა თუ რას წარმოადგენს factory ფუნქცია და რითი განსხვავდება ის ჯავასკრიპტის კლასებისგან.

factory function (ქარხანა ფუნქცია) არის ფუნქცია, რომელიც აბრუნებს ობიექტს. თავად სახელწოდებაც პირობითადაა შერქმეული, ვინაიდან ეს ფუნქციები ქმნიან ობიექტებს.

factory ფუნქციების საშუალებით, შეგვიძლია შევქმნათ ობიექტი new საკვანძო სიტყვის (keyword) ან constructor() ფუნქციის გარეშე, ასევე არაა საჭირო გამოვიყენოთ this საკვანძო სიტყვა.

მაგალითი:

function createPerson(name, age) {
  return {
	name,
	age,
	greet() {
  	    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
	}
  };
}

const person = createPerson("Alice", 30);
person.greet(); // დაიბეჭდება: Hello, my name is Alice and I'm 30 years old.

ასევე ეს ფუნქციები ენკაფსულაციის საშუალებასაც გვაძლევს, რაც გულისხმობას, იმას, რომ გვქონდეს ე.წ. private ცვლადები და მეთოდები, მაგრამ constructor ფუნქციებისგან განსხვავებით factory ფუნქციებში არ შეგვიძლია გამოვიყენოთ inheritance.

მაგალითი:

function createPerson(name, age) {
  // Private data
  let secret = "I'm a secret!";

  return {
	name,
	age,
	greet() {
  	    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
	},
	revealSecret() {
  	    console.log(secret);
	},
  };
}

const person = createPerson("Alice", 30);
person.revealSecret(); // დაიბეჭდება: I'm a secret!

პ.ს. მოცემული მაგალითებში არ არის სრულფასოვნად მოყვანილი ყველა ძირითადი განსხვავება კლსაებთან მიმართებაში, დეტალურ განსხვავებებს შემოგთავაზებთ ცალკე ბლოგში.

პროგრამირების კურსები

უახლესი ბლოგები პროგრამირებაზე

factory ფუნქციე...

factory ფუნქციები ჯავასკრიპტში

რატომ არ არის პ...

რატომ არ არის პროგრამირება შენთვის?

CSS-ის ერთეულებ...

CSS-ის ერთეულები rem და em

რა არის Fronten...

რა არის Frontend დეველოპმენტი?