Consider the following code snippet :
var c = counter(), d = counter();
function constfuncs()
{
var funcs = [];
for(var i = 0; i < 10; i++)
funcs[i] = function() { return i; };
return funcs;
}
var funcs = constfuncs();
funcs[5]()
What does the last statement return ?
var c = counter(), d = counter();
function constfuncs()
{
var funcs = [];
for(var i = 0; i < 10; i++)
funcs[i] = function() { return i; };
return funcs;
}
var funcs = constfuncs();
funcs[5]()
A. 9
B. 0
C. 10
D. None of the mentioned
Answer: Option C
Solution(By Examveda Team)
The code above creates 10 closures, and stores them in an array. The closures are all defined within the same invocation of the function, so they share access to the variable i. When constfuncs() returns, the value of the variable i is 10, and all 10 closures share this value. Therefore, all the functions in the returned array of functions return the same value.Related Questions on Array and Function
Consider the code snippet given below
What is the observation made?var count = [1,,3];
A. The omitted value takes “undefined”
B. This results in an error
C. This results in an exception
D. None of the mentioned
A. true false
B. false true
C. true true
D. false true
The pop() method of the array does which of the following task ?
A. decrements the total length by 1
B. increments the total length by 1
C. prints the first element but no effect on the length
D. None of the mentioned
Consider the following code snippet :
What is the observation made ?if (!a[i]) continue ;
A. Skips the undefined elements
B. Skips the non existent elements
C. Skips the null elements
D. All of the mentioned
Join The Discussion