针对一个变数的纯值(Number, String, Boolean, undefined 与 NULL等)用等号传递给另一个变数或函式,此值会复制一份,且会创造一个新的记忆体位址,将那个值存入。
EX:
var a = 3;
var b;
b = a
此时变数 b 的值虽然也是3,但是这个3是从a的值复制来的,也就是对方的拷贝,这两个3分别放在两个不同的记忆体位置。
所以改变a的值是不影响b的值。
如果刚刚的范例改变a的值,b会变多少呢?
EX:
var a = 3;
var b;
b = a
a = 10;
console.log(b); //3
b 仍然是3,因为拷贝之後就与a的值没有关系了。
这就是纯值的 by value
针对所有物件(包含Array与function)用等号赋值给变数,会指向同一个原物件。
var a = {name:'Ivy'};
var b = a ;
a.name='Lisa';
console.log(b.name); //Lisa
因为这是一个物件,它不会建立一个新的记忆体位址给b,所以a与b都指向同一个物件,a改值b的值也会跟着改。
这就是物件的传参考 by reference
参考文章:
你不可不知的 JavaScript 二三事#Day26:程序界的哈姆雷特 —— Pass by value, or Pass by reference?
EDUCBA JavaScript Pass By Value
<<: Day 14:怎麽在 Angular 使用 Bootstrap?
>>: 【第11天】训练模型-Keras Application重要函数
前言 本章节,将会介绍本系列文章的实验操作环境以及一些设定与建置的步骤。 实验操作环境介绍 实验操作...
经过复赛Online Pitch之後, 我当时真的感觉很有机会得奖, 加上无论比赛结果如何, 客户...
Spring-assisted knives also called assisted openin...
在铁人赛即将过半之际,终於要来串接 API 显示真实的书单资料了!不过在此之前,我们应该先来了解一下...
10.8 更多的 Leetcode 例题 Leetcode 1129. Shortest Path ...