我试图了解有关 lodash _.clone 的更多信息,我认为它复制了一个对象中的数据并创建了一个不同的对象。然而,当我在控制台中测试时,我注意到了这一点:
var a = 88
undefined
var b = a
undefined
console.log(b)
88 VM1010:2
undefined
var a = 100
undefined
console.log(b)
88
我期望看到的是 b 为 100。有人能为我解释一下吗?
Update:
这是我遇到的问题:
$scope.grid.data = result;
$scope.grid.backup = _.clone(result);
在这里,当我更改数据对象内的值时,.backup 对象内的相应值也会发生变化
这就是变量在 JavaScript 和大多数语言中的工作方式。分配b = a
分配value变量的a
到变量b
。在能够将变量设置为对另一个变量的引用的语言中,通常有特定的语法来执行此操作; JavaScript 没有这个功能。
请注意,这可能会显得令人困惑,因为对于对象来说,值是从a
to b
是对对象的引用,但这仍然不会“链接”变量本身,它只是将它们“指向”同一个对象。修改任一变量(通过赋值)不会影响另一个变量,但会更改对象through任一变量都将被两个变量镜像,因为它们再次指向同一个对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)