JavaScript හි ගණන් කරන විචල්යයේ ප්රාදේශීය විචල්යය
පහත කේතය සලකා බලන්න:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
}
test()(); // 1 පෙන්වයි
test()(); // 1 පෙන්වයි
ඇයි සෑම විටම අංකය 1 පෙන්වන්නේ? එය
තේරුම් ගැනීමට, අපගේ කේතය වෙනස් ආකාරයකින්
යලි ලියමු:
function test() {
let num = 1;
return function() {
console.log(num);
num++;
};
};
let func1 = test(); //!! පළමු ශ්රිතය
func1(); //1 පෙන්වයි
let func2 = test(); //!! දෙවන ශ්රිතය
func2(); //1 පෙන්වයි
එනම්, ශ්රිතය test ලෙස හැඳින්වීම
මේ ආකාරයට: test()(), එක් එක් එහිම
පැවරීම සමඟ ශ්රිතයක් සාදා එම ශ්රිතය
ක්ෂණිකව ක්රියාත්මක කරයි.
කේතය ක්රියාත්මක නොකර, කොන්සෝලයේ අඟවන දේ නිර්ණය කරන්න:
function func() {
let num = 0;
return function() {
console.log(num);
num++;
};
}
func()();
func()();
func()();
කේතය ක්රියාත්මක නොකර, කොන්සෝලයේ අඟවන දේ නිර්ණය කරන්න:
function func() {
let num = 0;
return function() {
console.log(num);
num++;
};
}
let test = func;
test()();
test()();
test()();