function withVar() {

function withVar() {

const b = () => a;

var a = 24;

return b;

}

function withLet() {

const b = () => a;

let a = 24;

return b;

}

function changingValue() {

let a = 24;

const b = () => a;

a = 42;

return b;

}

console.log(withVar()()); // ??

console.log(withLet()()); // ??

console.log(changingValue()()); // ??

Kết quả đoạn code sau là:

A. undefined Error 42

B. 24 Error 24

C. 24 24 42

D. undefined Error 24

Hướng dẫn

Chọn C là đáp án đúng

Xem lời giải

Xem lời giải

Closure là khi một inner function có thể ghi nhớ và truy cập đến các thành phần ở scope của outer function, thậm chí outer function đã thực thi xong. Ở trong ba ví dụ trên, thì function b vẫn ghi nhớ và truy cập đến biến a ở bên ngoài scope của nó, mặc dù các outer function đã được thực thi xong.

Tags: