JavaScript හි ශ්රිතයක වර්ගය පරීක්ෂා කරන්නේ කෙසේද
පහත ගැටළු වලදී, ඔබට නිර්වචනය කළ ශ්රිතය Function Declaration ලෙසද නැතහොත් Function Expression ලෙසද යන්න තීරණය කිරීමට අවශ්ය වනු ඇත.
සරල අවස්ථාවලදී, මෙය දෘශ්යමය වශයෙන් කිරීමට අපහසු නැත. නමුත් ඔබ එය නිවැරදිව කළ බව පරීක්ෂා කර ගන්නේ කෙසේද? Function Declaration සහ Function Expression අතර වෙනස භාවිතා කරන්න: පළමුවැන්න එහි නිර්වචනයට ඉහලින් ක්රියා කළ හැකිය, නමුත් දෙවැන්න - කළ නොහැකිය.
අපට මේ වගේ ශ්රිතයක් තිබේ යැයි සිතමු:
let test = function() {
console.log('!');
}
එහි නිර්වචනයට පෙර මෙම ශ්රිතය වෙත යොමු වෙමු:
test(); // console හි දෝෂයක් පෙන්වයි, එනම් Function Expression යන්නයි.
let test = function() {
console.log('!');
}
තවත් උදාහරණයක් මෙන්න:
func(); // '!' පෙන්වයි, එනම් Function Declaration යන්නයි.
function func() {
console.log('!');
}
අපගේ ශ්රිතය ඉදිරිපිට plus ලකුණක් තබමු:
func(); // console හි දෝෂයක් පෙන්වයි, එනම් Function Expression යන්නයි.
+function func() {
console.log('!');
}
ඉහත ශ්රිතය Function Expression බැවින් එය කිසිදු විචල්යයකට පැවරී නොමැති නිසා, එය ක්රියා කිරීමට කිසිදු ආකාරයකින් හැකි නැත, මන්ද func යන නමින් එය ලබා ගත නොහැකිය.
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
let test = function func() {
console.log('!');
}
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
console.log(
function func() {
console.log('!');
}
);
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
+function func() {
console.log('!');
}
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
function func() {
console.log('!');
}