繁体   English   中英

当我将变量分配给另一个变量时,它不会将它们链接在一起吗?

[英]When I assign a variable to another variable does it not link them together?

我试图找到有关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。有人可以帮我解释一下。

更新:

这是我遇到的问题:

                $scope.grid.data = result;
                $scope.grid.backup = _.clone(result);

在这里,似乎当我更改数据对象内部的值时,.backup对象内部的对应值也发生了变化

这就是变量在JavaScript和大多数语言中的工作方式。 b = a赋值将变量a赋给变量b 在能够将变量设置为对另一个变量的引用的语言中,通常使用特定的语法来进行设置。 JavaScript没有此功能。

请注意,这可能会造成混淆,因为在对象的情况下,从ab分配的值是对该对象的引用,但这仍然不会“链接”变量本身,而只是将它们“指向”到同一对象。 修改任何一个变量(通过赋值)都不会影响另一个变量,但是通过两个变量对对象进行的任何更改都将被两个变量镜像,因为它们再次指向同一对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM