這篇文章主要介紹了js中slice屬于是深拷貝還是淺拷貝,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鎮(zhèn)安做網(wǎng)站,已為上家服務(wù),為鎮(zhèn)安各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
JS是JavaScript的簡稱,它是一種直譯式的腳本語言,其解釋器被稱為JavaScript引擎,是瀏覽器的一部分,主要用于web的開發(fā),可以給網(wǎng)站添加各種各樣的動態(tài)效果,讓網(wǎng)頁更加美觀。
通過之前的介紹,我們知道slice是一個切片方法,它既可以在原來的數(shù)組基礎(chǔ)上做了一次淺拷貝,也可以拷貝數(shù)組的所有目錄,整個復(fù)制一份,返回一個數(shù)組的一段(仍為數(shù)組),進行深拷貝。
一、slice淺拷貝
就是只拷貝第一級目錄,拷貝一個數(shù)組(或者一部分),不拷貝更深層次的目錄。
1、使用語法
Array.slice([start[, end])
2、使用說明
通過start 和 end對原數(shù)組進行淺拷貝(提取 start 至 end 索引的數(shù)組元素)
3、返回值
返回一個淺復(fù)制,start閉end開。
4、使用實例
var arr = ['A', 'B', 'C', 'D']; var res = arr.slice() console.log('arr', arr); // ['A', 'B', 'C', 'D'] console.log('res', res); // ['A', 'B', 'C', 'D']
二、slice深拷貝
就是對于array對象的slice函數(shù),拷貝數(shù)組的所有目錄,整個復(fù)制一份,返回一個數(shù)組的一段(仍為數(shù)組),切斷了二級及以上目錄的引用關(guān)系。
1、使用語法
arrayObj.slice(start, [end])
2、參數(shù)
start 必選項。arrayObj 中所指定的部分的開始元素是從零開始計算的下標。
end可選項。arrayObj 中所指定的部分的結(jié)束元素是從零開始計算的下標。
3、返回值
返回一個 Array 對象,其中包含了 arrayObj 的指定部分。
4、使用實例
let arr1 = [1, 2, 3], arr2 = arr1.slice(); arr2.pop(); console.log(arr1); console.log(arr2);
感謝你能夠認真閱讀完這篇文章,希望小編分享的“js中slice屬于是深拷貝還是淺拷貝”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!