如何重复利用同一个变量进行多次赋值,而不改变原变量的值?
发布于 9 年前 作者 Mirwangsir 6167 次浏览 最后一次编辑是 8 年前 来自 问答

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

7 回复

你在讲什么?

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

???

@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,怎么做到?

@Mirwangsir lodash.clone 浅克隆一下

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

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;
}

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

Object.create(obj)
回到顶部