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à:

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.

 

Thư viện tài liệu12 Tháng Bảy, 2023 @ 2:17 chiều

Đánh giá chủ đề này