function f1(){ var n=999; nAdd=function(){n+=1} function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999 nAdd(); result(); // 1000 总结:nAdd=function(){n+=1}没有return返回值却成功返回n+=1;的表达式
3.闭包用法是函数里面套函数来获取局部变量,还是函数里面return返回局部变量重赋值给新变量。
①:没有在函数里面使用函数而是直接将函数里面的局部变量return返回。
var age = function data () { var brith = 999; return brith; } var son = age (); alert(son);
②:传统教程上的获取局部变量编发,在函数里面再套上一个函数。
var sum =(function add () { var plus = 0; return function a () {return plus += 1}; })(); function myFunction () { document.getElementById("demo").innerHTML = sum (); console.log(sum); }