Closure trong javascript là gì? Cho ví dụ.

{{FormatNumbertoThousand(model.total_like)}} lượt thích
192 lượt xem
Javascript

Trong javascript, closure là một hàm tham chiếu các biến có phạm vi ngoài phạm vi của hàm đó.

Nó cho phép bạn truy cập các biến hoặc tham số có phạm vị ngoài phạm vị hàm đó.

Để sử dụng closure, đơn giản là bạn khai báo một function bên trong một function khác và return nó ra.

Ví dụ 1:

function phongVanIT() {
    let name = 'PhongvanIT';

    function callName() {
        console.log(name);
    }

    return callName;
}
var callFunc = phongVanIT();
callFunc();
// Kết quả: "PhongvanIT"

Ví dụ 2:

function phongVanIT(name) {
   return function(action){
        return action + ' ' + name;
   }
}
var hello = phongVanIT('PhongvanIT.com');
var love = phongVanIT('PhongvanIT.com');

console.log(hello('Hello')); // Kết quả: "Hello PhongvanIT.com"
console.log(love('Love')); // Kết quả: "Love PhongvanIT.com"
{{login.error}}