ජාවාස්ක්‍රිප්ට් හි නෙස්ටඩ් ශ්‍රිත

අප සතුව අංක දෙකක් පරාමිතියක් ලෙස පිළිගන්නා සහ ඒ අංකවල වර්ගවල එකතුව ප්‍රතිදානය කරන ශ්‍රිතයක් ඇතැයි සිතමු:

javascriptfunction func(num1, num2) {
  return num1 * num1 + num2 * num2;
}

console.log(func(2, 3)); // 13 ප්‍රතිදානය කරයි (2 * 2 + 3 * 3 හි ප්‍රතිඵලය)

අපි වර්ග කිරීමේ ක්‍රියාකාරිත්වය සහායක ශ්‍රිතයක් වන square ක් තුළට ගෙන යමු:

javascriptfunction square(num) {
  return num * num;
}

function func(num1, num2) {
  return square(num1) + square(num2);
}

console.log(func(2, 3)); // 13 ප්‍රතිදානය කරයි

square ශ්‍රිතය භාවිතා වන්නේ func ශ්‍රිතය තුළට පමණක් වන අතර වෙනත් කිසිම තැනක භාවිතා නොවන බවට අපට විශ්වාසයක් ඇතැයි සිතමු.

මෙම අවස්ථාවේදී, වැරදීමකින් තව කිසිවෙකුගේ (ඔබගේම හෝ ඔබ සමඟ වැඩ කරන අනෙක් ක්‍රමලේඛකයාගේ) එය භාවිතා නොකිරීම පහසු වනු ඇත.

ජාවාස්ක්‍රිප්ට් හි අලංකාර විසඳුමක් තිබේ: අපගේ සහායක ශ්‍රිතය වන square ශ්‍රිතය func ශ්‍රිතය තුළට ඇතුළු කළ හැකිය. මෙම අවස්ථාවේදී, අපගේ සහායක ශ්‍රිතයට ප්‍රවේශ විය හැක්කේ func තුළට පමණක් වන අතර, එයින් පිටතට - ප්‍රවේශය ලැබෙන්නේ නැත.

අපි මෙය කරමු:

javascriptfunction func(num1, num2) {
  function square(num) {
    return num * num;
  }
  
  return square(num1) + square(num2);
}

console.log(func(2, 3)); // 13 ප්‍රතිදානය කරයි

square ශ්‍රිතය func ශ්‍රිතයෙන් පිටතින් කැඳවීමට උත්සාහ කිරීම දෝෂයක් ඇති කරයි:

javascriptfunction func(num1, num2) {
  function square(num) {
    return num * num;
  }
  
  return square(num1) + square(num2);
}

console.log(square(2)); //!! දෝෂයක් ලබා දෙයි
Задание 1

func ශ්‍රිතයක් සාදන්න, එය පරාමිති ලෙස අංක දෙකක් පිළිගන්නා අතර, පළමු අංකයේ වර්ගයේ එකතුව දෙවන අංකයේ ඝනය සමඟ ප්‍රතිදානය කරයි. මේ සඳහා සහායක ශ්‍රිතයක් square සාදන්න, එය අංකයක් වර්ග කරයි, සහ සහායක ශ්‍රිතයක් cube සාදන්න, එය අංකයක් ඝන කරයි.