Javascript Date 类型的值传递与引用传递问题

新建一个Date类型的变量 d1。

<span style="font-family:Microsoft YaHei;font-size:14px;">var d1 = new Date();
alert(d1);</span>

运行后页面上会弹出:   

Fri Sep 05 2014 16:40:50 GMT+0800


再新建一个变量 d2, 将 d1的值赋给d2,   把d2 的 年份设置为 2013,

<span style="font-family:Microsoft YaHei;font-size:14px;">var d2 = d1;
d2.setFullYear("2013");
alert(d1 + "/" + d2);</span>

运行后页面上会弹出:   

Thu Sep 05 2013 16:40:50 GMT+0800

Thu Sep 05 2013 16:40:50 GMT+0800


即使改为如下, 把d2 也声明为Date 类型, 结果仍然一样。

<span style="font-family:Microsoft YaHei;font-size:14px;">var d1 = new Date();
alert(d1);
<span style="color:#FF0000;">var d2 = new Date();</span>
d2 = d1;
d2.setFullYear("2013");
alert(d1 + "/" + d2);</span>

表明: Date 类型的这种直接赋值方式会变成引用传值, d1 , d2 两个变量指向同一个Date对象。

           要慎用 “=” 符号直接给对象赋值这种方式, 很大可能结果与自己预想的不一致,导致运算错误。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值