摘要:且原始數(shù)組不會(huì)被修改。語法從上面的例子可以看到其實(shí)是重新開了一個(gè)內(nèi)存塊給新數(shù)組了,所以我們可以用來解決上面的問題在內(nèi)存中開個(gè)新內(nèi)存塊給,這樣就算你改了的內(nèi)容,也不會(huì)變。
大家應(yīng)該都知道數(shù)組和對(duì)象都是引用類型,如果一個(gè)數(shù)組賦值給另外一個(gè)數(shù)組只是將該數(shù)組的引用地址賦給另一個(gè)數(shù)組!比如:
let a = [{ id:1. name:"zhangwei", age:18 }]; let b = a;//這里將a的引用地址的指針指向了b,所以如果你想獲取b的內(nèi)容,其實(shí)就是獲取a的內(nèi)容,相當(dāng)于給a開了一個(gè)副本
上面的代碼有一定的副作用:就是如果你改變了a的值那么b的值就會(huì)跟著變化,這也就是引用地址造成的,因?yàn)閍和b指針指向的是同一個(gè)內(nèi)存區(qū)域,如:
a.name = "lilei" console.log(b.name)//這時(shí)候b.name 就是 "lilei"
像上面的 "副作用" 我們?nèi)绾谓鉀Q呢?因?yàn)槲也幌敫淖兞薬的同時(shí)讓b也變化!其實(shí)方法也有好多種,網(wǎng)上百度一下應(yīng)該也能查到,這里我使用的是我目前使用的方法 array的slice()方法,按照MDN Array slice 上面的說明:
slice() 方法返回一個(gè)從開始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個(gè)新數(shù)組對(duì)象。且原始數(shù)組不會(huì)被修改。 語法Edit arr.slice(); // [0, end] arr.slice(begin); // [begin, end] arr.slice(begin, end); // [begin, end) var animals = ["ant", "bison", "camel", "duck", "elephant"]; console.log(animals.slice(2)); // expected output: Array ["camel", "duck", "elephant"] console.log(animals.slice(2, 4)); // expected output: Array ["camel", "duck"] console.log(animals.slice(1, 5)); // expected output: Array ["bison", "camel", "duck", "elephant"]
從上面的例子可以看到slice其實(shí)是重新開了一個(gè)內(nèi)存塊給新數(shù)組了,所以我們可以用來解決上面的問題:
let a = [{ id:1. name:"zhangwei", age:18 }]; let b = a.slice();//在內(nèi)存中開個(gè)新內(nèi)存塊給b,這樣就算你改了a的內(nèi)容,b也不會(huì)變。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108058.html
摘要:對(duì)象詳解對(duì)象深度剖析,深度理解對(duì)象這算是醞釀很久的一篇文章了。用空構(gòu)造函數(shù)設(shè)置類名每個(gè)對(duì)象都共享相同屬性每個(gè)對(duì)象共享一個(gè)方法版本,省內(nèi)存。 js對(duì)象詳解(JavaScript對(duì)象深度剖析,深度理解js對(duì)象) 這算是醞釀很久的一篇文章了。 JavaScript作為一個(gè)基于對(duì)象(沒有類的概念)的語言,從入門到精通到放棄一直會(huì)被對(duì)象這個(gè)問題圍繞。 平時(shí)發(fā)的文章基本都是開發(fā)中遇到的問題和對(duì)...
摘要:前言本文作者站在自己的角度深入淺出算了別這么裝逼分析在設(shè)計(jì)過程中通過構(gòu)建異步數(shù)據(jù)流的思路。看上去那是相當(dāng)?shù)耐昝?,根?jù)咱們寫代碼的思路咱們來比對(duì)一下原版吧。時(shí)直接返回傳入函數(shù)函數(shù)。 前言 本文作者站在自己的角度深入淺出...算了別這么裝逼分析 redux applyMiddleware 在設(shè)計(jì)過程中通過 compose 構(gòu)建異步數(shù)據(jù)流的思路。自己假設(shè)的一些場(chǎng)景幫助理解,希望大家在有異步數(shù)...
摘要:提問深度與非深度的區(qū)別對(duì)象與數(shù)組與的區(qū)別的一個(gè)特點(diǎn)是,最初綁定的時(shí)候是不會(huì)執(zhí)行的,要等到改變時(shí)才執(zhí)行監(jiān)聽計(jì)算。為一個(gè)對(duì)象,鍵是需要觀察的表達(dá)式,值是對(duì)應(yīng)回調(diào)函數(shù)。值也可以是方法名,或者包含選項(xiàng)的對(duì)象適用場(chǎng)景一個(gè)數(shù)據(jù)影響多個(gè)數(shù)據(jù)。 提問 1.深度watch與非深度watch的區(qū)別;2.watch對(duì)象與數(shù)組;3.watch與computed的區(qū)別; immediate FullNa...
摘要:前言本次分析基于解釋器,版本在時(shí)代,整型有類型和長(zhǎng)整型,長(zhǎng)整型不存在溢出問題,即可以存放任意大小的整數(shù)。在后,統(tǒng)一使用了長(zhǎng)整型。 前言 本次分析基于 CPython 解釋器,python3.x版本 在python2時(shí)代,整型有 int 類型和 long 長(zhǎng)整型,長(zhǎng)整型不存在溢出問題,即可以存放任意大小的整數(shù)。在python3后,統(tǒng)一使用了長(zhǎng)整型。這也是吸引科研人員的一部分了,適合大數(shù)據(jù)...
閱讀 3380·2021-09-30 09:47
閱讀 2763·2021-08-18 10:22
閱讀 2558·2021-08-16 10:49
閱讀 2916·2019-08-30 15:53
閱讀 2760·2019-08-29 16:14
閱讀 3215·2019-08-28 18:18
閱讀 3260·2019-08-26 13:21
閱讀 820·2019-08-26 12:02