[英]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没有此功能。
请注意,这可能会造成混淆,因为在对象的情况下,从a
到b
分配的值是对该对象的引用,但这仍然不会“链接”变量本身,而只是将它们“指向”到同一对象。 修改任何一个变量(通过赋值)都不会影响另一个变量,但是通过两个变量对对象进行的任何更改都将被两个变量镜像,因为它们再次指向同一对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.