CNode

如何重复利用同一个变量进行多次赋值,而不改变原变量的值?

问答
MMirwangsir发布于11 年前最后回复11 年前7 回复6873 浏览0 收藏

同标题,请大婶们支招,谢谢

查看回复

回复 (7)

K
klesh#1·11 年前

你在讲什么?

var b = 1;
var a = b;
var a = 2;
console.log(b); // 1
console.log(a); // 2

???

M
Mirwangsir#2·11 年前

@klesh 不是,我举个例子,帮忙看下

var aa = {bb: 1, cc: 2}; var test = {}; for (var i = 0; i < 3; i++) { aa['bb'] = 2; test[i] = aa; } 我想让for第二次遍历时,aa还是原值,即aa.bb = 1,怎么做到?

D
DavidCai1993#4·11 年前

引用类型的话就先深克隆,基本类型就先浅克隆。

K
klesh#5·11 年前
var _ = require('lodash');
var aa = {bb: 1, cc: 2};
var test = {};
for (var i = 0; i < 3; i++) {
  var tmp = _.clone(aa);
  tmp['bb'] = 2;
  test[i] = tmp;
}
M
Mirwangsir#6·11 年前

OK,感谢大家的回复。@alsotang @DavidCai1993 @klesh

F
fundon#7·11 年前
Object.create(obj)
参与回复
登录后即可参与回复。登录