闭包
这是我对闭包的一点小理解.有问题请直接指出,在此先谢过!
闭包的含义
封闭隔离的空间,在javascript中,只有函数能够符合这种特性;
为什么要用闭包呢?
因为在引用外部js文件(如jquery,各种框架)时防止变量重名造成的问题,同时也使代码更具隐私性;
获取闭包中数据的方法:
一般采用 return 对象,因为对象可以添加多个方法,让每个方法返回对应的值
下面是一个闭包的案例参考
//闭包,把所有代码都写在自调用函数里,以防重名; (function () {function foo(name,age,gender) {var flag=false; //设置一个节流阀,判断条件return { //这里返回一个对象get_Name:function() { //给对象设置方法return name;},set_Name:function (value) {return name=value;},get_Age:function () {return age;},get_Gender:function () {return gender},set_Gender:function (value) {if(flag==false){ //当你修改过一次性别后,再次修改将会报错;flag=true;return gender=value;}else{throw new Error("您已经更改过性别了,只能修改一次");}}}}var F=foo("刘跃盛",23,"男"); //调用函数foo()并把返回的对象赋值给到变量 F ;var A=foo("章旭卉",21,"女");console.log(A.set_Name("章舒涵")); console.log(F.set_Gender("女")); //修改性别console.log(F.set_Gender("男"));//再次修改报错})();
加油!