闭包

    xiaoxiao2023-10-01  158

    闭包为返回一个函数的函数。

    由于作用域的问题,无法在外部访问函数内部的变量,但有时候我们又有这样的需求,所以这时候就需要使用闭包了。

    闭包就是在函数A中定义了一个函数a,然后子函数a控制夫函数变量v1,然后在父函数A中把子函数a返回给调用方。

    基本用法:

    var arr = []; for(var i=0;i<10;i++){ arr[i] = (function(j){ return function(){ return j; }; })(i); } --> 0-9

    在外部改变函数内部的值

    function Fn(){ var n =100; function setfn(v){ n = v; }; function getet(){ console.log(n); }; return { set: setfn, get: getet }; } var fn = new Fn(); fn.get(); --> 100 fn.set(50); fn.get(); --> 50 function Fn(){ var n = 100; return function fn(v){ n = (v == undefined)?n:v; return n; }; } var fn = new Fn(); fn(); --> 100 fn(50); --> 50 fn(); --> 50

     

    最新回复(0)