javaScript 闭包

闭包:有权访问另一个函数作用域变量的函数

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script type="text/javascript">
 7             var a=4;
 8             function myfunction(){
 9                 var a=6;
10                 document.getElementById("s").innerHTML=add1();
11             }
12             //第一种写法:
13             var add=(function add(){
14                 var b=0;
15                 return function(){
16                     return b+=1;
17                 }
18             })();
19             //第二种写法:
20             var add1=(function add1(){
21                 var c=0;
22                 function add2(){
23                     return c+=1;
24                 }
25                 return add2;
26             })();
27             
28         </script>
29     </head>
30     <body>
31         <button  onclick="myfunction()">点击</button>
32         <span id="s"></span>
33     </body>
34 </html>

面试题:(常用Js的可能会考核)

 1 var name = "The Window";
 2 
 3       var object = {
 4         name: "My Object",
 5         
 6         getNameFunc : function(){
 7           return function(){
 8             return this.name;
 9           };
10 
11         }
12 
13       };
14 
15       alert(object.getNameFunc()()); 

执行结果:弹出The Window

 1 var name = "The Window";
 2 
 3     var object = {
 4       name : "My Object",
 5 
 6       getNameFunc : function(){
 7         var that = this;
 8         return function(){
 9           return that.name;
10         };
11 
12       }
13 
14     };
15     alert(object.getNameFunc()());

执行结果:弹出My Object

原文地址:https://www.cnblogs.com/echola/p/9594472.html