function box(){ var age=100; return function(){ age++; return age; };}var b=box();alert(b());alert(b());alert(b());b=null;alert(b());function box(){ var age=100; return function(){ age++; return age; };}alert(box()());alert(box()());box()=null;alert(box()());两段代码的区别就是是否给box()函数赋值给一个变量b。为什么结果会不一样!!求解答
2 回答
Y_du
TA贡献43条经验 获得超5个赞
b=null;
alert(b());
这样应该实现不了你要的效果。因为var b=box();在这你申明了b是box()的一个实例对象,你访问b()的时候会去找box()这个函数,而你在b=null;这样的赋值,再去调用b()时应该会报错。这时候b只是一个参数而不是谁的实例对象。
添加回答
举报
0/150
提交
取消