闭包理解一

58 阅读1分钟

闭包:在一个作用域中可以访问另一个函数内部的局部变量的函数。 比如:我们想让age自增

function person() {
    var age = 18;
    return function(){
        age++; 
        console.log(age);
    }
} 
let getPersonAge = person();
getPersonAge(); // 19
getPersonAge(); // 20
getPersonAge(); // 21

这时getPersonAge变量实际等于

getPersonAge=function(){
        age++; 
        console.log(age);
    }

根据js执行机制,person函数中age = 18;执行后应该销毁,但是因为返回的是一个函数,所以age++的值就得到了保留。 根据以上案例,我理解在react中子组件如果想把父组件传入的参数,通过自身更改后再返给父组件,其实也是闭包原理。