javascript面试题(一)

 1 function  fun(n,o){
 2 console.log(o);
 3   return{
 4     fun:function(m){
 5       return fun(m,n);
 6     }
 7   };
 8 
 9 }
10 
11 
12 var a=fun(0);
13 
14 a;               //输出undefined    Object { fun=function()}
15 a.fun(1);    //输出undefined  0   Object { fun=function()}
16 a.fun(2);    //输出undefined  0   Object { fun=function()}
17 a.fun(3);    //输出undefined  0   Object { fun=function()}
18 
19 var b=fun(0).fun(1).fun(2).fun(3);
20 //输出undefined  0  1  2    Object { fun=function()}
21 
22 
23 var c=fun(0).fun(1);
24 c.fun(2);//输出undefined  0  1   Object { fun=function()}
25 c.fun(3);//输出undefined  0  1   Object { fun=function()}
26 
27 
28 /*
29 简要:
30 第一次调用fun(0)时,n=0,o未定义,输出undefined(并返回对象 fun=function)
31 
32 当重调用函数内对象时,如fun(0).fun(1)时,最开始n=0,o未定义,输出undefined后
33 调用属性fun,参数m=1,此时n=0,m=1;返回fun(1,0),fun(1,0)则将n替代为1,o替代为0,
34 直接输出0,最后返回函数fun=function
35 
36 当再次调用内部fun()时,又一轮替换,如fun(0).fun(1).fun(2),依次输出undefined  0  ,1 object
37 
38 
39 */

 

posted on 2015-12-06 22:54  东渐  阅读(112)  评论(0编辑  收藏  举报

导航