Skip to content

Commit 57497f1

Browse files
feat: Add Q202 to JavaScript quiz with explanation (#7236)
Co-authored-by: Veda Vyasa <2400040217@kluniversity.in>
1 parent 2b3b5e0 commit 57497f1

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

javascript/javascript-quiz.md

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2922,26 +2922,35 @@ console.log(obj.getName());
29222922

29232923
[Reference Promise.allSettled()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled)
29242924

2925-
29262925
#### Q201. What will be the output of the following code?
2927-
// code
2928-
const obj = {};
2929-
Object.defineProperty(obj, "key", {
2930-
value: 10,
2931-
writable: false,
2932-
});
2926+
// code here:
2927+
function createCounter() {
2928+
let count = 0;
2929+
return {
2930+
increment: () => count++,
2931+
getValue: () => count
2932+
};
2933+
}
29332934

2934-
obj.key = 20;
2935-
console.log(obj.key);
2935+
const counter1 = createCounter();
2936+
const counter2 = createCounter();
29362937

2937-
- [ ] 20
2938-
- [x] 10
2939-
- [ ] undefined
2940-
- [ ] Error
2938+
counter1.increment();
2939+
counter1.increment();
2940+
counter2.increment();
2941+
2942+
console.log(counter1.getValue(), counter2.getValue());
2943+
2944+
- [ ] 1,1
2945+
- [ ] 3,3
2946+
- [x] 2,1
2947+
- [ ] undefined
29412948

29422949
Explanation:
2943-
Object.defineProperty() created a non-writable property because writable: false was used.
2944-
Assigning obj.key = 20 has no effect, so the console prints 10.
2950+
Each call to createCounter() creates a new closure with its own independent count variable.
2951+
So:
2952+
counter1 increments twice → 2
2953+
counter2 increments once → 1
2954+
Closures DO NOT share state unless they reference the same outer scope object.
29452955

2946-
Reference:
2947-
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
2956+
[Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures]

0 commit comments

Comments
 (0)