𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁-இல் 𝗙𝗮𝗰𝘁𝗼𝗿𝘆 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗮𝗻𝗱 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀
ஒவ்வொன்றாக ஆப்ஜெக்ட்களை (objects) உருவாக்குவது ஒரு தவறு.
ஒவ்வொரு பயனர் அல்லது வகுப்புத் தோழருக்கும் நீங்கள் ஒரு மேனுவல் ஆப்ஜெக்ட்டை எழுதினால், நீங்கள் குறியீட்டை (code) மீண்டும் மீண்டும் எழுதுகிறீர்கள். உங்களிடம் 100 பயனர்கள் இருந்தால், அதே லாஜிக்கை (logic) 100 முறை எழுத வேண்டியிருக்கும். இது பிழைகளுக்கு (bugs) வழிவகுக்கும். நீங்கள் தற்செயலாகப் பின்னாளில் ஒரு பண்பை (property) மாற்றினால், அது உங்கள் அப்ளிகேஷனைச் செயலிழக்கச் செய்யலாம்.
சுத்தமான குறியீட்டை எழுதப் பதிலாக, இந்த இரண்டு முறைகளைப் (patterns) பயன்படுத்தவும்.
- Factory Functions
ஒரு உண்மையான தொழிற்சாலையைப் பற்றி யோசியுங்கள். மூலப்பொருட்கள் உள்ளே செல்கின்றன. ஒரு முடிக்கப்பட்ட தயாரிப்பு வெளியே வருகிறது.
ஒரு factory function அளவுருக்களைப் (parameters) பெற்று, ஒரு புதிய ஆப்ஜெக்ட்டைத் திருப்பித் தரும் (returns).
Example:
function classFactory(name) {
return {
reply() {
return `${name} is present`
}
}
}
நன்மைகள்:
- நீங்கள் லாஜிக்கை ஒருமுறை மட்டுமே எழுதுகிறீர்கள்.
- ஒவ்வொரு புதிய ஆப்ஜெக்ட்டிற்கும் அந்த ஃபங்ஷனை நீங்கள் மீண்டும் பயன்படுத்தலாம்.
- தரவு பாதுகாப்பாக இருக்கும். பெயர் (name) ஃபங்ஷன் ஸ்கோப்பிற்குள் (function scope) இருக்கும். நீங்கள் வெளியிலிருந்து தற்செயலாக அதை மாற்ற முடியாது.
- Constructor Functions
Constructor functions-உம் ஆப்ஜெக்ட்களை உருவாக்குகின்றன. இவை "new" keyword மற்றும் "this" keyword ஆகியவற்றைப் பயன்படுத்துகின்றன. வழக்கப்படி, இவற்றை ஒரு பெரிய எழுத்தில் (capital letter) தொடங்க வேண்டும்.
Example:
function Classmate(name) {
this.name = name
this.reply = function() {
return `${this.name} is present`
}
}
நீங்கள் "new"-ஐப் பயன்படுத்தும்போது, JavaScript உங்களுக்காக வேலையைச் செய்கிறது:
- இது ஒரு புதிய ஆப்ஜெக்ட்டை உருவாக்குகிறது.
- அதை "this"-க்கு ஒதுக்குகிறது.
- ஆப்ஜெக்ட்டைத் தானாகவே திருப்பித் தருகிறது.
உங்களுக்கு "return" ஸ்டேட்மென்ட் (statement) தேவையில்லை.
Scaling your code
அதிகப்படியான தரவைக் கையாள இந்த முறைகளை அரேக்களுடன் (arrays) இணைக்கலாம். ஒவ்வொரு பெயரையும் தட்டச்சு செய்வதற்குப் பதிலாக, ஒரு map function-ஐப் பயன்படுத்தவும்.
Example:
const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))
இப்போது உங்களிடம் பயன்படுத்தத் தயாராக உள்ள ஆப்ஜெக்ட்களின் பட்டியல் உள்ளது.
சுருக்கம்:
- மீண்டும் மீண்டும் வருவதைத் தவிர்க்க, மேனுவல் ஆப்ஜெக்ட் உருவாக்கத்தைத் தவிர்க்கவும்.
- லாஜிக்கை உள்ளடக்கி (encapsulate), தரவைப் பாதுகாக்க Factory Functions-ஐப் பயன்படுத்தவும்.
- தானியங்கி ஆப்ஜெக்ட் உருவாக்கத்திற்காக "new" keyword-ஐப் பயன்படுத்த Constructor Functions-ஐப் பயன்படுத்தவும்.
- எப்போதும் உங்கள் லாஜிக்கை ஒருமுறை மட்டும் எழுதி, அதை எல்லா இடங்களிலும் மீண்டும் பயன்படுத்தவும்.
Source: https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb