මම මෑතකදී io.js සඳහා බොහෝ ES6 කේත ලියා ඇත. ඉගෙන ගැනීමට බොහෝ කේතයන් වනයේ නොමැත, එබැවින් මම යන විට මගේ සම්මුතීන් නිර්වචනය කර ඇති බවක් මට හැඟේ.
මගේ ප්රශ්නය const
එදිරිව භාවිතා කරන්නේ කවදාද let
යන්නයි.
මම මෙම නියමය ක්රියාත්මක කරමි: හැකි නම් භාවිතා කරන්න const
. let
එහි වටිනාකම වෙනස් විය යුතු බව ඔබ දන්නේ නම් පමණක් භාවිතා කරන්න. (ඔබට සැමවිටම ආපසු ගොස් a ට වෙනස් කළ const
හැකිය let
, පසුව එය හැරී ගියහොත් එහි වටිනාකම වෙනස් කළ යුතුය.)
මෙම රීතියට ප්රධාන හේතුව වන්නේ නිරන්තරයෙන් අයදුම් කිරීම පහසුය. අළු පැහැති ප්රදේශ නොමැත.
කාරණය නම්, මම මෙම රීතිය ක්රියාත්මක කරන විට, ප්රායෝගිකව මගේ ප්රකාශවලින් 95% ක්ම වේ const
. මේක මට අමුතුයි වගේ. මම භාවිතා කරන එකම කරනවා let
වගේ දේවල් i
තුළ for
පුඩුවක්, හෝ එකතු ෆිබොනාච්චි එකතූන් (බොහෝ සැබෑ ජීවිතයේ එන්න නොවන) වැනි දෑ වෙනුවෙන් කලාතුරකිනි. මා මෙයින් පුදුමයට පත් විය - මේ දක්වා මගේ ES5 කේතයේ 95% 'විචල්යයන්' වෙනස් නොවන අගයන් සඳහා වූ බව පෙනේ. නමුත් const
මගේ කේතය පුරාම දැකීම කෙසේ හෝ වැරදියි.
ඉතින් මගේ ප්රශ්නය: const
මෙය මෙතරම් භාවිතා කිරීම හරිද ? මම ඇත්තටම මෙවැනි දේ කළ යුතුද const foo = function () {...};
?
නැතහොත් const
මොඩියුලයක ඉහළින්ම ඔබ වචනානුසාරයෙන් කේත කරන එවැනි තත්වයන් සඳහා මා වෙන් කළ යුතුද - ඔබ සම්පූර්ණ තොප්පි වලින් කරන ආකාරයේද const MARGIN_WIDTH = 410;
?
function foo() {...}
වඩා හොඳයි<anything> foo = function() {...}
function foo() {...}
එසවීම හේතුවෙන් නිදොස්කරණය කිරීමේදී සුළු ව්යාකූලත්වයක් ඇති කළ හැකි අවවාදයක් තිබේ. එසේම, එහි පැවැත්මෙන් අදහස් කරන්නේ අපට එකම දේ කරන ඉදිකිරීම් දෙකක් ඇති නමුත් ඒවායින් එකක් ක්රියාත්මක වන්නේ ඉතා නිශ්චිත සන්දර්භයක් තුළ පමණි. (ඔබට ප්රකාශනයක් පැවතිය හැකි ඕනෑම තැනක ශ්රිත ප්රකාශනයක් භාවිතා කළ හැකිය, නමුත් ඔබට ප්රකාශ ප්රකාශ මට්ටමින් පමණක් ශ්රිත ප්රකාශයක් භාවිතා කළ හැකිය.) ඔබ සංක්ෂිප්තතාවයට කැමති නම්, ගැටළුව වන්නේ ශ්රිත ප්රකාශන වාක්ය ඛණ්ඩය මුළු වචනයම භාවිතා කිරීමයි function
.
const
මේ තරම්.