;是alert(cc),不知道为什么显示不出来
<script language="javascript"> function aa(bb){ bb ++; } function zz(){ var cc = 1; aa(cc); alert(cc); } zz();</script>
弹出来的是1,意料之中
<script language="javascript"> function aa(bb){ bb.setDate(bb.getDate() + 1); } function zz(){ var cc = new Date(); aa(cc); alert(cc); } zz();</script>
这个为什么cc会加上一天呢?
3 回答

素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
关键在与你的 var cc = new Date();这句话,这句话看似确实是定义了一个局部变量cc,但事实并非如此;事实是这里定义的CC是一个日期对象实例。为说明这一点,你可以用typeof(cc)检查下类型,你会发现这里返回的是object类型。因此答案也就明了了。这里既然是object类型了,那此处调用的aa这个方法,这就和咋们经常使用的高级语言传递一个对象实例是一样的意思了(也就是2楼写的那个代码了)
后话:你也可以去检查下你alert出1的代码,他返回的应该是值类型,而并非object类型。

忽然笑
TA贡献1806条经验 获得超5个赞
bb.setDate(bb.getDate() + 1);..这里不是加了一吗?...
你的代码就是这个意思啊
var cc = new Date();
cc.setDate(cc.getDate() + 1);
添加回答
举报
0/150
提交
取消