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

时间:2022-04-23
本文章向大家介绍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>

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

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