Maison >interface Web >js tutoriel >javascript学习之闭包分析_javascript技巧

javascript学习之闭包分析_javascript技巧

WBOY
WBOYoriginal
2016-05-16 18:14:511116parcourir

在ECMAScript中,在函数声明处向函数外部看到的声明的所有变量,在函数内部都能访问到它们的最终值

闭包函数只能访问变量的最终值!!!

eg: 

function fnTest(arr) {
    for (var i=0;i     arr[i]=function () { alert(i+" | "+arr[i]); };
    }
 }
 var arr = [0,1,2,3];
 fnTest(arr);
 for (var i=0;i   arr[i]();   //始终输出4还有一个undefined因为函数退出后,i值为4,所以访问到的值只有4

//结果会连续弹出4个"4|undefined”
 }

 不但在闭包中可以访问闭包外的变量值,而且还可以设置它的值

eg:

 function fnTest() {
    var a="June";
    return {
     set:function (param) {a = param},
     get:function () {return a}
    };
 }
 var obj = fnTest();
 alert(obj.get());//弹出June

 obj.set(586);
 alert(obj.get());//弹出586 

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn