承上篇
基本型别(primitive):资料以纯值的形式存在。
物件型别(object):可能由零或多种不同型别(含纯值与物件)所组成的物件。--008
// 比较物件型别
var obj1 = { value: 10 };
var obj2 = { value: 10 };
console.log(obj1 === obj2); // false
因两个物件各别宣告,型别的记忆体位置不同,所以是 false 的结果。
举例如下,在物件型别中复制变数,复制的是他的位址,也就是所谓的传址。
let obj1 = { value: 10 };
let obj2 = obj1;
console.log(obj1 === obj2); // true
这部分与基本型别不一样,为什麽是 true?我们画来瞧瞧,实际上 obj2 复制了 obj1 的值,而这个值是 Heap 的位址,再来才是他的值。
那如果修改他的值会有什麽结果呢?
obj1.value = 30;
console.log(obj1); // 30
console.log(obj2); // 30
猜到了吗?因为指向同一个 Heap,所以修改 obj1.value 後,obj1 跟 obj2 的结果也同时被影响。
JavaScript’s Memory Model
008天重新认识JavaScript
<<: Day 15: Structural patterns - Facade
在建构元中也有所谓公有(public)和私有(private)之分。截至目前为止,所提到的都是公有(...
怎麽在Mac/Windows上将MOV转换为MP4:免费或在线转换器推荐 MOV是Mac用户的流行影...
上一篇讲到 interface,今天这篇会来讲 type, 他们两个功能几乎很像,但还是有些不一样...
现在有不少的软件会有一个特殊的版本叫Nightly,从字面上的意思就可以得知是指每个晚上发行的版本,...
关於 Separation of concerns(SoC)这个地方我觉得别人写的已经很清楚了(英文...