𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 میں 𝗙𝗮𝗰𝘁𝗼𝗿𝘆 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀 اور 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀
ایک ایک کر کے objects بنانا ایک غلطی ہے۔
اگر آپ ہر صارف (user) یا ہم جماعت (classmate) کے لیے دستی طور پر (manually) ایک object لکھتے ہیں، تو آپ کوڈ کو بار بار دہراتے ہیں۔ اگر آپ کے پاس 100 صارفین ہیں، تو آپ ایک ہی منطق (logic) کو 100 بار لکھیں گے۔ اس سے بگ (bugs) پیدا ہو سکتے ہیں۔ ہو سکتا ہے کہ آپ بعد میں غلطی سے کسی پراپرٹی (property) کو تبدیل کر دیں اور آپ کی ایپلی کیشن خراب ہو جائے۔
صاف ستھرا کوڈ لکھنے کے لیے اس کے بجائے ان دو پیٹرنز (patterns) کا استعمال کریں۔
- Factory Functions
ایک حقیقی فیکٹری کے بارے میں سوچیں۔ خام مال (raw materials) اندر جاتا ہے اور ایک تیار شدہ مصنوعات (finished product) باہر آتی ہے۔
ایک factory function پیرامیٹرز (parameters) لیتا ہے اور ایک نیا object واپس (return) کرتا ہے۔
Example:
function classFactory(name) {
return {
reply() {
return `${name} is present`
}
}
}
فوائد:
- آپ منطق (logic) کو صرف ایک بار لکھتے ہیں۔
- آپ ہر نئے object کے لیے فنکشن کو دوبارہ استعمال کرتے ہیں۔
- ڈیٹا محفوظ رہتا ہے۔ نام فنکشن کے اسکوپ (scope) کے اندر رہتا ہے۔ آپ اسے غلطی سے باہر سے اوور رائٹ (overwrite) نہیں کر سکتے۔
- Constructor Functions
Constructor functions بھی objects تخلیق کرتے ہیں۔ یہ "new" کی ورڈ اور "this" کی ورڈ کا استعمال کرتے ہیں۔ روایت کے مطابق، آپ ان کا آغاز بڑے حرف (capital letter) سے کرتے ہیں۔
Example:
function Classmate(name) {
this.name = name
this.reply = function() {
return `${this.name} is present`
}
}
جب آپ "new" کا استعمال کرتے ہیں، تو JavaScript آپ کے لیے کام کرتی ہے:
- یہ ایک نیا object تخلیق کرتی ہے۔
- یہ اسے "this" کے ساتھ تفویض (assign) کرتی ہے۔
- یہ خود بخود object واپس (return) کر دیتی ہے۔
آپ کو "return" سٹیٹمنٹ کی ضرورت نہیں ہوتی۔
اپنے کوڈ کو اسکیل (scale) کرنا
آپ بڑی مقدار میں ڈیٹا کو سنبھالنے کے لیے ان پیٹرنز کو arrays کے ساتھ ملا سکتے ہیں۔ ہر نام ٹائپ کرنے کے بجائے، ایک map function کا استعمال کریں۔
Example:
const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))
اب آپ کے پاس استعمال کے لیے objects کی ایک فہرست تیار ہے۔
خلاصہ:
- تکرار سے بچنے کے لیے دستی طور پر object بنانے سے گریز کریں۔
- منطق کو انکیپسولیٹ (encapsulate) کرنے اور ڈیٹا کو محفوظ رکھنے کے لیے Factory Functions کا استعمال کریں۔
- خودکار طریقے سے object تخلیق کرنے کے لیے "new" کی ورڈ سے فائدہ اٹھانے کے لیے Constructor Functions کا استعمال کریں۔
- ہمیشہ اپنی منطق ایک بار لکھیں اور اسے ہر جگہ دوبارہ استعمال کریں۔
Source: https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb