[Day23] 物件传参考范例

经由昨天我们可以知道,纯值在传递时是透过复制的方式,而物件则是利用传参考的方式,今天就来练习几个关於物件传参考的范例:

范例1

var family = {
    name: 'Carol家',
    members: {
        dad: '老爸',
        mom: '老妈',
        child: 'Carol'
    }
};
var member = family.members;

member.child = 'Mary';
console.log(family);
// {name: 'Carol家', members: {dad: '老爸', mom: '老妈', child: 'Mary'}}
console.log(member);
// {dad: '老爸', mom: '老妈', child: 'Mary'}

member = {
    child: 'Jay'
};
console.log(family);
// {name: 'Carol家', members: {dad: '老爸', mom: '老妈', child: 'Mary'}}
console.log(member);
// {dad: '老爸', mom: '老妈', child: 'Jay'}

范例2

var a = { x: 1 };
a.y = a;
console.log(a);

范例3

var a = { x: 1 };
var b = a;
a.y = a = { x: 2 };
// a = a.y = { x: 2 }; 顺序性不影响结果
console.log(a.y); // undefined
console.log(a); // {x: 2}
console.log(b); // {x: 1, y: {x: 2}}
console.log(a === b.y); // true

范例4

var a = { x: 1};
var b = a;
a.x = { x: 2};
a.y = a = { y: 1};
console.log(a); // {y: 1}
console.log(b); // {x: {x: 2}, y: {y: 1}}
console.log(a === b.y); // true

参考文献

六角学院 - JavaScript 核心篇


<<:  [Day25] - Django-REST-Framework Authencation Permission 介绍

>>:  D23 - 彭彭的课程# Python 网路连线程序、公开资料串接(1)

Laravel 技术笔记 (四)【Query Builder 查询建构器】

介绍 在上一篇使用迁移定义好资料库的架构後,我们还需要学习如何与资料库互动,在 Laravel 中我...

物理访问控制系统(PACS)-重播攻击(Replay attack)

下图演示了针对生物识别系统的九个攻击点。从传感器到特徵提取器的生物特徵数据的回放是其中之一。 . “...

Day 14. Tutorial: Create a scene flow - 10. Challenge Answer

如果你也有跟着教程做的话,第10节有个练习,可以来跟我交流一下答案,我也不知道我的写法是不是好的,但...

Trouble with Distributed Systems (1)

从 2020 Day 21 - Replication 开始到现在,我们大多都是在谈系统出错了怎麽办...

[Day11] 在 GCP 上建立 VM 与布署 API 程序

今天我们要来介绍如何在 GCP 上建立 VM 并布署我们的 API 程序。 建立 VM 首先点选功能...