Javascript 如何在没有引用的情况下为变量指定对象值
我使用Node.js,我想将A的当前值分配给变量B。当A发生变化时,B的值不应该改变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
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