iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

重新開始 JavaScript系列 第 26

[Day26] 求值策略

  • Call by Value 傳值
  • Call by Reterence 傳參照
  • Call by Sharing

JavaScript 的純值為傳值,物件為傳參照

Call by Value 傳值

var num = 1;
var str = '一';

var num2 = num;
var str2 = str;

num2 = 2;
str = '二';

console.log(num, num2); // 1 2
console.log(str, str2); // 一 二

Call by Reterence 傳參照

var person = {
    name: 'Carol',
    age: 18
};

var person2 = person;

console.log(person); // {name: 'Carol', age: 20}
console.log(person2); // {name: 'Carol', age: 20}

Call by Sharing 傳共用物件

function fn(person) {
    person.age = 20;
    person = {
        name: 'Mary',
    };
    return person;
}

var person = {
    name: 'Carol',
    age: 18
};

var person2 = fn(person);

console.log(person); // {name: 'Carol', age: 20}
console.log(person2); // {name: 'Mary'}
var person = {
    name: 'Carol',
    age: 18
};

var person2 = person;

person.age = 20;
person = {
    name: 'Mary',
};

console.log(person); // {name: 'Mary'}
console.log(person2); // {name: 'Carol', age: 20}

上一篇
[Day25] 求值策略
下一篇
[Day27] JSON
系列文
重新開始 JavaScript32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言