ජාවාස්ක්රිප්ට් හි ගෝලීය විචල්යයන් සහ ශ්රිත පරාමිතීන්
අපට සංඛ්යාවක් පරාමිතියක් ලෙස ගන්නා ශ්රිතයක් ඇතැයි සිතමු:
function func(localNum) {
console.log(localNum);
}
ශ්රිතයෙන් පිටත num විචල්යයක් ඇතැයි සිතමු:
function func(localNum) {
console.log(localNum);
}
let num = 1; // පිටත ගෝලීය විචල්යය
අපගේ ශ්රිතය කැඳවමු, එයට
num විචල්යය පරාමිතිය ලෙස ලබා දෙමින්:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // පරාමිතිය සමඟ ශ්රිතය කැඳවන්න, 1 පෙන්වයි
ප්රතිඵලය වන්නේ ශ්රිතය තුළ
localNum විචල්යයට (ශ්රිත
පරාමිතිය) පමණක් නොව, num විචල්යයටද
(පිටත විචල්යය ලෙස) ප්රවේශ වීමට හැකි වීමයි:
function func(localNum) {
console.log(num); // 1 පෙන්වයි
console.log(localNum); // 1 පෙන්වයි
}
let num = 1;
func(num);
localNum විචල්යයම ශ්රිතයේ
local විචල්යයක් වන අතර එයට පිටතින්
ප්රවේශ විය නොහැක:
function func(localNum) {
}
let num = 1;
func(num); // පරාමිතිය සමඟ ශ්රිතය කැඳවන්න
console.log(localNum); // දෝෂයක් දෙයි
localNum විචල්යය local වන බැවින්,
එය සමඟ කරන ඕනෑම වෙනසක් පිටත
කිසිවක් වෙනස් නොකරයි:
function func(localNum) {
localNum = 2; // පිටත කිසිවක් වෙනස් නොකරයි
}
let num = 1;
func(num);
නමුත් ශ්රිතය තුළ num විචල්යය
(ගෝලීය) වෙනස් කළහොත්, වෙනස පිටත දිස්වේ:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // 2 පෙන්වයි
කෙසේ වෙතත්, ශ්රිතය තුළ num විචල්යය
let හරහා ප්රකාශයට පත් කළහොත්,
අපි local විචල්යයක් නිර්මාණය කරන අතර එය
පිටත විචල්යයට කිසිදු ආකාරයකින් බලපාන්නේ නැත:
function func(localNum) {
let num = 2; // let හරහා ප්රකාශ කරමු
}
let num = 1;
func(num);
console.log(num); // 1 පෙන්වයි - කිසිවක් වෙනස් වී නැත
කේතය ක්රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:
function func(localNum) {
console.log(localNum);
}
func(1);
කේතය ක්රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
කේතය ක්රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
කේතය ක්රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
කේතය ක්රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
කේතය ක්රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
කේතය ක්රියාත්මක නොකර, console හි පෙන්වන්නේ කුමක්දැයි තීරණය කරන්න:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);