为什么我的变量“c”发生了变化
Why my variable "c" has changed?
var c = new Date(2015, 11, 25);
var d = c;
d.setFullYear(2000);
console.log(c);
console.log(d);
为什么我的变量"c"在此代码中发生了变化?
第 1 行:创建一个日期对象并将对它的引用分配给c
。
第 2 行:将 c
(对日期对象的引用(的值复制到d
第 3 行:修改日期对象。它仍然由两个变量引用。
如果要创建新的日期对象并将其分配给d
则需要显式执行此操作。
var c = new Date(2015, 11, 25);
var d = new Date(c);
d.setFullYear(2000);
console.log(c);
console.log(d);
变量c
没有改变。更改的是c
引用的对象,即 Date 实例。将 c
的值分配给 d
后,两个变量都引用同一个 Date 实例。两个变量,一个对象。
您可以像这样创建 Date 实例的副本:
var c = new Date(2015, 11, 25);
var d = new Date(+c);
或者更明确
var d = new Date(c.getTime());
相关文章:
- 起重行为在铬 48 和 49 之间发生了变化
- 找出 Vue.js 深度自定义指令中哪个属性发生了变化
- 发送到前端后,mysql 列中的日期发生了变化
- 检索到的 $().position() 更新为 position: absolute 后发生了变化
- 为什么 Angular 没有注意到这个变量的值发生了变化
- 自定义图标行为是否在JQueryMobile 1.4(Alpha / Beta / RC-1)中发生了变化
- Angular ngClass 没有更新我的类,即使我的条件按预期发生了变化
- 是这里的范围发生了变化还是其他原因
- 主页链接'的背景颜色在Internet explorer中发生了变化,但在Mozilla Firefox中不起作
- Chrome中的Math.log2精度发生了变化
- JS SDK auth.logout事件行为最近似乎发生了变化
- 为什么我的变量“c”发生了变化
- 使用JavaScript,这样当点击图像时,另一个元素's的位置发生了变化
- ag网格对单元格值的排序发生了变化
- 当我插入MySQL时,我的代码发生了变化
- 隐藏提交按钮,除非表单/输入数据发生了变化
- react.js如何知道数据发生了变化?
- 找出在Ember ArrayController中哪个单独的项目发生了变化
- 将html移到php include后,情况发生了变化
- 如何检测表单输入的值自设置以来是否发生了变化