关于js实参与形参的点点滴滴

function sum(s,m){
            function sum2(m){
            console.log(m+s);
            console.log(m);
            console.log(s)
            }
            return sum2;
            }
            var ces=sum(1,2);
            ces()//输出m  为undefined     输出s为1; 我的理解是  首先sum(1,2)时 其实sum2里确实发生了 1+2;  但当ces()时由于没有赋实际参数,所以m就被undefined覆盖,所以最后结果为NaN
            
            
        function sum(s,m){
            function sum2(){
            console.log(m+s);//当sum2没有形参时m s取决于sum 也不会被undefined替代  输出3
            console.log(m);//输出2
            console.log(s)//输出1
            }
            return sum2;
            }
            var ces=sum(1,2);
ces();




----------------------------------------------------------------------------


            var test = (function(a) {    
this.a = a;    
return function(b) {        
return this.a + b;  

            } (   function(a, b) {    
return a;
            }(1, 2)) ); //(function(形参){}(实参))立即执行函数格式
            console.log(test(4));
              该题目主要考察的是立即执行函数与闭包的概念   这里其实有两个立即执行函数  而后一个立即执行函数的结果又作为第一个立即执行函数的实参!!(注意:立即执行函数始终会比闭包函数(非立即执行函数)先执行)所以最终的
              结果为4+1  5;

猜你喜欢

转载自blog.csdn.net/weixin_41421227/article/details/79661848