js中多个Date对象变量间赋值互相影响

js中多个Date对象变量间赋值互相影响
<head>
    <title></title>
    <script type="text/javascript">
        function pageLoad() {
            var dtmNow = new Date();
            var dtmDt1 = dtmNow;
            dtmDt1.setMinutes(20);
            var divContent = document.getElementById("divContent");
            divContent.innerHTML = "dtmDt1:" + dtmDt1.toLocaleTimeString() + "dtmNow:" + dtmNow.toLocaleTimeString();
        }
    </script>
</head>
<body onload ="pageLoad()">
    <div id="divContent">
    
    </div>
</body>
js中多个Date对象变量间赋值互相影响

  页面初始化时获得当前时间给变量dtmNow,然后dtmNow变量又赋给dtmDt1,给dtmDt1的分钟设置成20,再打印出两个变量,结果发现两个变量值相等,即dtmNow也发生了变化,本意是不想dtmNow随着变化,所以才定义了dtmDt1变量,但现在dtmNow也改变了这是为什么呢?

  dtmNow是Date类型,Date是对象是引用类型,dtmNow赋给了dtmDt1,引用类型间的拷贝是将变量指向同一个实例,那dtmDt1也就指向dtmNow所指向的实例,当改变其中一个的值时其实改变的是同一个实例,自然另一个变量也会随之改变,这与值类型不同。

本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/archive/2012/10/11/2720143.html如需转载请自行联系原作者


欢醉

 

上一篇:学习zepto.js(对象方法)[6]


下一篇:Google 提供 Fastboot 和 ADB 单独下载服务