JavaScript میں Constructors
ایک ایک کر کے objects بنانا سست عمل ہے۔ اگر آپ کو ایک جیسی properties والے دس طلباء کی ضرورت ہے، تو آپ ایک ہی کوڈ بار بار لکھ کر اپنا وقت ضائع کرتے ہیں۔
JavaScript اس مسئلے کو Constructor Functions کے ذریعے حل کرتا ہے۔
ایک constructor کو ایک blueprint کے طور پر سوچیں۔ گھر کا نقشہ خود گھر نہیں ہوتا، لیکن آپ اسے بہت سے گھر بنانے کے لیے استعمال کرتے ہیں۔
یہ کیسے کام کرتا ہے:
ایک constructor ایک خاص function ہے۔ آپ اس سے objects بنانے کے لیے new keyword کا استعمال کرتے ہیں۔
مثال:
function Student(name, age, city) {
this.name = name;
this.age = age;
this.city = city;
}
const student1 = new Student("John", 21, "Chennai");
const student2 = new Student("David", 22, "Madurai");
اسے کیوں استعمال کریں؟
- یہ وقت بچاتا ہے۔
- یہ کوڈ کے بار بار دہرائے جانے سے روکتا ہے۔
- یہ آپ کے ڈیٹا کے لیے ایک معیاری ڈھانچہ (structure) تیار کرتا ہے۔
this کا کردار:
ایک constructor کے اندر، this کا لفظ اس نئے object کی طرف اشارہ کرتا ہے جو آپ بنا رہے ہیں۔
اگر ایک استاد کہے "میرا کلاس روم" (my classroom)، تو لفظ "میرا" (my) اس مخصوص استاد کی طرف اشارہ کرتا ہے۔ کوڈ میں، this.name اس مخصوص object کے نام کی طرف اشارہ کرتا ہے جو آپ نے ابھی بنایا ہے۔
جب آپ new استعمال کرتے ہیں تو کیا ہوتا ہے؟
جب آپ const emp = new Employee("John", 50000) چلاتے ہیں، تو چار مراحل ہوتے ہیں:
- JavaScript ایک خالی object بناتا ہے۔
thiskeyword اس نئے object کی طرف اشارہ کرتا ہے۔- Properties کو object میں شامل کر دیا جاتا ہے۔
- Object آپ کو واپس کر دیا جاتا ہے۔
ایکشنز (Actions) کا اضافہ کرنا:
Objects صرف ڈیٹا رکھنے کے لیے نہیں ہوتے، بلکہ وہ ایکشنز بھی انجام دے سکتے ہیں۔ پروگرامنگ میں، ان ایکشنز کو methods کہا جاتا ہے۔
مثال:
function Laptop(brand, ram) {
this.brand = brand;
this.ram = ram;
this.showDetails = function() {
console.log(this.brand, this.ram);
};
}
Laptop object اب ڈیٹا اور اس ڈیٹا کو دکھانے کے لیے ایک function رکھتا ہے۔
بہترین طریقے (Best Practices):
- ہمیشہ constructor کے پہلے حرف کو Capitalize کریں۔
Studentاستعمال کریں،studentنہیں۔ یہ دوسرے ڈویلپرز کو بتاتا ہے کہnewkeyword استعمال کرنا ہے۔ - ہمیشہ
newkeyword استعمال کریں۔ اگر آپ اسے بھول جائیں گے، تو function ایک عام function کی طرح کام کرے گا اور آپ کا کوڈ خراب ہو جائے گا۔
موازنہ:
Object Literals:
- ایک واحد object کے لیے بہتر ہے۔
- سادہ اور تیز ہے۔
- کوئی blueprint نہیں ہوتا۔
Constructor Functions:
- بہت سے objects کے لیے بہتر ہے۔
- دوبارہ استعمال کے قابل اور منظم ہے۔
- Blueprint کے طریقے کو استعمال کرتا ہے۔
Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor Full post: https://dev.to/annapoo/constructor-in-javascript-4nbm