我有一个日期变量,我想以此为基础使用它:var Uhrzeit = new Date();现在我想将此基础复制到一个新变量中以使用它,为此,我刚刚创建了一个新变量并分配了第一个变量的值。var u = Uhrzeit我有这个小代码片段:var Uhrzeit = new Date();Uhrzeit.setMinutes(0);Uhrzeit.setSeconds(0);console.log("Uhrzeit: " + Uhrzeit);Uhrzeit.setSeconds(61);console.log("Uhrzeit: " + Uhrzeit)var u = Uhrzeit;console.log("u: " + u);u.setSeconds(200);console.log("u: " + u);console.log("Uhrzeit: " + Uhrzeit)它生成以下输出:Uhrzeit: Sun Apr 05 2020 15:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)Uhrzeit: Sun Apr 05 2020 15:01:01 GMT+0200 (Mitteleuropäische Sommerzeit)u: Sun Apr 05 2020 15:01:01 GMT+0200 (Mitteleuropäische Sommerzeit)'u: Sun Apr 05 2020 15:04:20 GMT+0200 (Mitteleuropäische Sommerzeit)Uhrzeit: Sun Apr 05 2020 15:04:20 GMT+0200 (Mitteleuropäische Sommerzeit)现在有以下问题: u 最后的值是 4 Min 和 20Sec。Uhrzeit 具有相同的值,尽管它应该具有 1Min 和 1Sec 的值。当我更改 u 的值时,为什么 Uhrzeit 的值与 u 相同?我希望这不是重复的,我只找到了其他语言的关于这个问题的帖子。
1 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
请注意:
var Uhrzeit = new Date();
创建一个新的日期实例,它是一个对象。
在您分配的那一刻var u = Uhrzeit
,javascript 中的 this 意味着 u 指的是所指的同一个日期对象Uhrzeit
。
因此,对象的变量将引用保存在存储对象的内存中。通过分配一个引用对象的变量,只需将该引用传递给新变量。
当您更改其中一个u
或Uhrzeit
它们都引用同一个对象时,它们都更改了同一个对象。
你必须这样做:
var u = new Date(Uhrzeit);
这将创建u
的值Uhrzeit
。但是它们现在都将引用内存中的不同对象。
添加回答
举报
0/150
提交
取消