在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ 三點(diǎn)運(yùn)算符到底做了什么?

三點(diǎn)運(yùn)算符到底做了什么?

const obj7 = {a: {b: 1}};
const obj8= { ...obj7 } 

obj7.a.b = 7
console.log(obj7.a.b, obj8.a.b)

// 7 7

const obj9 = {a: 1};
const obj10= { ...obj9 } 

obj10.a = 7
console.log(obj9.a, obj10.a)
// 1 7

老哥們有點(diǎn)不懂
為什么第二段代碼是淺復(fù)制? 還有第一段和第二段為什么不一樣?
我好像看文檔錯(cuò)過(guò)了什么 但是找不到解釋。。。
求大佬打醒我。

----------分割線----------
上面的 我懂了 但是這個(gè)三點(diǎn)運(yùn)算符 做了什么? 和 var = 有什么區(qū)別?

const obj3 = {a: 1};
var obj4 = obj3
obj3.a = 3;
console.log(obj3.a,obj4.a)
// 3 3

const obj9 = {a: 1};
const obj10= { ...obj9 } 
obj10.a = 7
console.log(obj9.a, obj10.a)
// 1 7
回答
編輯回答
詆毀你

擴(kuò)展運(yùn)算符(spread)
引用類型與值類型

2018年5月14日 13:12
編輯回答
尤禮

無(wú)論是...還是assign都是淺拷貝,什么是淺拷貝,顧名思義就是只拷貝第一層屬性,如果第一層屬性的值為一個(gè)引用類型的數(shù)據(jù),那么復(fù)制的就是這個(gè)數(shù)據(jù)的地址,也就是并沒(méi)有把數(shù)據(jù)本身拷貝過(guò)來(lái),只是說(shuō)我記住你了,有事我再找你。

第一個(gè)例子中a屬性是一個(gè)對(duì)象,拷貝過(guò)來(lái)后改變這個(gè)數(shù)據(jù)的值,那么就相當(dāng)于改變了原數(shù)據(jù)

第二個(gè)例子中a屬性是一個(gè)namber類型的值,不是引用類型的,所以直接拷貝過(guò)來(lái),改變值后,源對(duì)象不會(huì)跟著改變


...是ES6新出現(xiàn)的一種運(yùn)算符,名為解構(gòu)。詳細(xì)的可以看阮一峰老師的ECMAScript 6 入門

顧名思義就是分解一個(gè)數(shù)據(jù)的結(jié)構(gòu),那么什么數(shù)據(jù)可以被分解?
所有可被遍歷的數(shù)據(jù)(具有Iterator 接口的對(duì)象),如對(duì)象、數(shù)組、Map、Set、argument,另外字符串也可以結(jié)構(gòu)(某種意義上字符串可以理解為數(shù)組)。

結(jié)構(gòu)一個(gè)數(shù)據(jù)后得到了什么?
這就要講到數(shù)據(jù)的遍歷了,你可以把結(jié)構(gòu)理解為遍歷取值,可是也不是什么值都取的。就拿object來(lái)說(shuō),使用for...in來(lái)遍歷,得到的是所有可枚舉的共有的屬性,而使用結(jié)構(gòu)來(lái)結(jié)構(gòu)一個(gè)對(duì)象,得到的是所有可枚舉的私有的屬性,這點(diǎn)要知道。

結(jié)構(gòu)最常用的兩個(gè)地方,一是結(jié)構(gòu)賦值,一是結(jié)構(gòu)復(fù)制。其基本原理都是遍歷取值。

2017年4月24日 16:59
編輯回答
練命

結(jié)構(gòu)賦值,es6語(yǔ)法http://es6.ruanyifeng.com/#RE...

2017年8月9日 06:11
編輯回答
舊時(shí)光
origin = {
    name: "James",
    hello: "World",
    child: {}
};

const a = origin;
const b = { ...origin };

console.log(a === origin, a);
console.log(b === origin, b);
console.log(b.child === origin.child);
true { name: 'James', hello: 'World', child: {} }
false { name: 'James', hello: 'World', child: {} }
true

所以擴(kuò)展運(yùn)算符干了什么——淺復(fù)制(最后那個(gè) true 輸出說(shuō)明了 child 未被復(fù)制)

2017年3月6日 02:26