Javascript 如何在没有引用的情况下为变量指定对象值

Javascript 如何在没有引用的情况下为变量指定对象值,javascript,node.js,Javascript,Node.js,我使用Node.js,我想将A的当前值分配给变量B。当A发生变化时,B的值不应该改变 var A = new Date(); var B = A; DP.setMonth(A.getMonth() - 1); console.log(B); //get A result 我使用Node.js,希望将变量的当前值指定给 B.当A发生变化时,B的值不应改变 var A = new Date(); var B = A; DP.setMonth(A.getMonth() - 1); console.l

我使用Node.js,我想将A的当前值分配给变量B。当A发生变化时,B的值不应该改变

var A = new Date();
var B = A;
DP.setMonth(A.getMonth() - 1);
console.log(B); //get A result
我使用Node.js,希望将变量的当前值指定给 B.当A发生变化时,B的值不应改变

var A = new Date();
var B = A;
DP.setMonth(A.getMonth() - 1);
console.log(B); //get A result
简单地替换

var B = A;

如果您想使用A的值,但仍然希望它们彼此隔离,那么您需要创建一个新对象,而不是简单地引用旧对象

我使用Node.js,希望将变量的当前值指定给 B.当A发生变化时,B的值不应改变

var A = new Date();
var B = A;
DP.setMonth(A.getMonth() - 1);
console.log(B); //get A result
简单地替换

var B = A;


如果您想使用A的值,但仍然希望它们彼此隔离,而不需要创建一个新对象,而不仅仅是引用旧对象。

您可以创建一个新的
Date
对象,并使用A的值为其种子

var A = new Date();
var B = new Date(A.getTime());

A.setMonth(A.getMonth() - 1);

console.log(B);

您可以创建一个新的
Date
对象,并使用a的值为其设定种子

var A = new Date();
var B = new Date(A.getTime());

A.setMonth(A.getMonth() - 1);

console.log(B);

最有效的方法(在JS中克隆对象)是使用名为的第三方实用程序库

使用lodash,您可以使用以下功能简单地克隆或深度克隆(对于嵌套对象): 或

通过npm安装来安装Lodash--保存Lodash

var _ = require(lodash)
var A = new Date();
var B = _.cloneDeep(A);
DP.setMonth(A.getMonth() - 1);
console.log(B);// B will not change

您可以使用这些方法克隆大多数JS对象Lodash针对性能进行了高度优化,因此使用Lodash比手动克隆每个关键点更好。Lodash还提供了其他非常有用的功能。

实现这一点最有效的方法(在JS中克隆对象)是使用名为的第三方实用程序库

使用lodash,您可以使用以下功能简单地克隆或深度克隆(对于嵌套对象): 或

通过npm安装来安装Lodash--保存Lodash

var _ = require(lodash)
var A = new Date();
var B = _.cloneDeep(A);
DP.setMonth(A.getMonth() - 1);
console.log(B);// B will not change

您可以使用这些方法克隆大多数JS对象Lodash针对性能进行了高度优化,因此使用Lodash比手动克隆每个关键点更好。Lodash还提供了其他非常有用的功能。

您不能直接指定,对象总是通过引用而不是值指定的。您必须克隆对象。替换
var B=A
var B=新日期(A)或干脆
var B=new Date()如果我将对象值分配给另一个变量,则该变量值始终随第一个对象而变化。如何使用分配的对象值创建另一个对象。您不能直接,对象始终是通过引用而不是值分配的。您必须克隆对象。替换
var B=A
var B=新日期(A)或干脆
var B=new Date()如果我将对象值指定给另一个变量,则该变量值始终随第一个对象而变化。如何使用指定的对象值创建另一个对象。loadsh非常重,最后添加了很多包,每个带有lodash的包都会生成一个大文件,现在我正在努力避免lodashloadsh很重,最后添加了很多包,每个包都会产生一个大文件,现在我正在努力避免lodashloadsh