JavaScript Constructor Functions
کنسٹرکٹر فنکشن (constructor function) آبجیکٹس کے لیے ایک بلیو پرنٹ (blueprint) کی طرح ہوتا ہے۔ اسے ایک ہی ساخت والے بہت سے آبجیکٹس بنانے کے لیے استعمال کریں۔
یہ کیسے کام کرتا ہے:
آپ کنسٹرکٹر فنکشن کو کال کرنے کے لیے new کی ورڈ کا استعمال کرتے ہیں۔ یہ عمل چار کام کرتا ہے:
- یہ ایک خالی آبجیکٹ بناتا ہے۔
- یہ
thisکو اس نئے آبجیکٹ کی طرف اشارہ کرنے کے لیے سیٹ کرتا ہے۔ - یہ فنکشن کے اندر موجود کوڈ کو ایگزیکیوٹ کرتا ہے۔
- یہ نیا آبجیکٹ ریٹرن کرتا ہے۔
مثال کے طور پر کوڈ:
function Employee(name, salary) {
this.name = name;
this.salary = salary;
}
const emp1 = new Employee("Saravanan", 50000);
ان قواعد پر عمل کریں:
- فنکشن کے نام بڑے حرف (capital letter) سے شروع کریں۔
- نئے آبجیکٹ کو پراپرٹیز (properties) تفویض کرنے کے لیے
thisکا استعمال کریں۔
this کا کردار:
ایک کنسٹرکٹر کے اندر، this اس مخصوص آبجیکٹ کی طرف اشارہ کرتا ہے جو آپ بنا رہے ہیں۔ مثال کے طور پر، this.name = name پیرامیٹر کی ویلیو کو آبجیکٹ کی پراپرٹی کو تفویض کرتا ہے۔
میتھڈز (methods) کا اضافہ کرنا:
آپ کنسٹرکٹر کے اندر فنکشنز شامل کر سکتے ہیں تاکہ ہر آبجیکٹ انہیں استعمال کر سکے۔
function Employee(name, salary) {
this.name = name;
this.salary = salary;
this.displayInfo = function() {
console.log(this.name + " earns " + this.salary);
};
}
میموری کی کارکردگی (Memory efficiency):
اگر آپ براہ راست کنسٹرکٹر میں میتھڈز شامل کرتے ہیں، تو ہر آبجیکٹ کو اپنی ایک الگ کاپی ملتی ہے۔ اس سے زیادہ میموری استعمال ہوتی ہے۔
اس کے بجائے، prototype کا استعمال کریں۔ پروٹو ٹائپ میں میتھڈ شامل کرنے سے تمام آبجیکٹس کے درمیان ایک ہی کاپی شیئر ہوتی ہے۔
Employee.prototype.greet = function() {
console.log("Hello " + this.name);
};
خلاصہ:
- ایک واحد آبجیکٹ کے لیے آبجیکٹ لٹرلز (object literals) کا استعمال کریں۔
- ایک جیسی ساخت والے متعدد آبجیکٹس کے لیے کنسٹرکٹر فنکشنز کا استعمال کریں۔
Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://www.geeksforgeeks.org/javascript/javascript-function-constructor/ Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
Post link: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k