国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue深拷貝的幾種實現(xiàn)方式

這篇具有很好參考價值的文章主要介紹了vue深拷貝的幾種實現(xiàn)方式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、通過遞歸方式實現(xiàn)深拷貝
比較全面的深拷貝,缺點是較為繁瑣

function deepClone(obj) {
	var target = {};
	for (var key in obj) {
		if (Object.prototype.hasOwnProperty.call(obj, key)) {
			if (typeof obj[key] === 'object') {
				target[key] = deepClone(obj[key]);
			} else {
				target[key] = obj[key];
			}
		}
	}
	return target;
}

2、JSON.parse(JSON.stringify(obj))
滿足一般使用場景,但無法實現(xiàn)對象中方法(function)的深拷貝

let obj = {
	id: 1,
	name: '張三',
	age: 10,
}
let newObj = JSON.parse(JSON.stringify(obj))

3、jQuery的extend方法實現(xiàn)深拷貝

var array = [1,2,3,4];
var newArray = $.extend(true,[],array); // true為深拷貝,false為淺拷貝

4、Object.assign(obj1, obj2)
只有一級屬性為深拷貝,二級屬性后就是淺拷貝

let obj = {
	id: 1,
	name: '張三',
	age: 10,
}
let newObj = Object.assign({}, obj)

5、擴展運算符
只有一級屬性為深拷貝,二級屬性后就是淺拷貝

var obj = {
    a: 1,
    b: 2
}
 
var obj1 = {…obj}

6、數(shù)組使用數(shù)組方法進行深拷貝(concat、slice)
只有一級屬性為深拷貝,二級屬性后就是淺拷貝,如[1,2,3,[1,2,3]]

var arr1 = [1, 2, 3, 4]
var arr2 = arr1.concat()
var arr3 = arr1.slice(1)

7、使用Vue提供的觀察者模式實現(xiàn)數(shù)組深度復(fù)制
//需要復(fù)制的數(shù)組

let arr1 = [{name: "小明", age: 18}, {name: "小芳", age: 20}];
let arr2 = Vue.util.extend([], arr1);

8、使用ES6提供的擴展運算符實現(xiàn)數(shù)組深度復(fù)制文章來源地址http://www.zghlxwxcb.cn/news/detail-704889.html

//需要復(fù)制的數(shù)組
let arr1 = [{name: "小明", age: 18}, {name: "小芳", age: 20}];
//使用ES6的擴展運算符實現(xiàn)數(shù)組深度復(fù)制
let arr2 = [...arr1];

到了這里,關(guān)于vue深拷貝的幾種實現(xiàn)方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 記錄一下C#深拷貝的幾種方式

    記錄一下C#深拷貝的幾種方式

    一、C#中預(yù)定義數(shù)據(jù)類型 ? ? ? ? 1》值類型 ? ? ? ? ?2》引用類型 兩種類型的不同點: ? ? ? ?概念: 值類型直接存儲其值,而引用類型存儲對值的引用 ? ? ? ?存儲: 值類型存儲在堆棧 (stack) 上,而引用類型存儲在托管堆上(managed heap)。 當使用值類型,進行賦值的

    2023年04月08日
    瀏覽(47)
  • 前端div水平居中的幾種實現(xiàn)方式

    前端div水平居中的幾種實現(xiàn)方式

    父元素開啟 display:flex 布局,并設(shè)置 justify-content:center 主軸的空隙分布 因為是單行,所以使用 align-items:center 設(shè)置側(cè)軸上的對其方式 啊啊啊 借助這一條規(guī)則 文章: https://www.zhihu.com/question/21644198/answer/42702524 https://www.w3.org/TR/CSS2/visudet.html#blockwidth top、left、right、bottom 設(shè)置百分比基

    2024年02月07日
    瀏覽(26)
  • java中關(guān)于深拷貝的幾種方式

    在java里,當我們需要拷貝一個對象時,有兩種類型的拷貝: 淺拷貝與深拷貝。 淺拷貝只是拷貝了源對象的地址,所以源對象的值發(fā)生變化時,拷貝對象的值也會發(fā)生變化。 深拷貝則是拷貝了源對象的所有值,所以即使源對象的值發(fā)生變化時,拷貝對象的值也不會改變。 O

    2024年02月11日
    瀏覽(16)
  • 記錄--盤點前端實現(xiàn)文件下載的幾種方式

    記錄--盤點前端實現(xiàn)文件下載的幾種方式

    前端涉及到的文件下載還是很多應(yīng)用場景的,那么前端文件下載有多少種方式呢?每種方式有什么優(yōu)缺點呢?下面就來一一介紹。 通過 a 標簽的 download 屬性來實現(xiàn)文件下載,這種方式是最簡單的,也是我們比較常用的方式,先來看示例代碼: 就上面的這個示例,我們點擊下

    2024年02月13日
    瀏覽(27)
  • JavaScript打開新窗口的幾種方式

    window.location.href window.open 指定參數(shù) NewUrl //’ 彈出窗口的地址; ‘newwindow’ //彈出窗口的名字,非必須,可用空’\\\'代替; height=600 //窗口高度; width=900 //窗口寬度; top=0 //窗口距離屏幕上方的象素值; left=0 //窗口距離屏幕左側(cè)的象素值; toolbar=no //是否顯示工具欄,yes為顯示

    2024年02月14日
    瀏覽(14)
  • JavaScript 判斷是否為數(shù)字的幾種方式

    喜歡博主的文章,歡迎關(guān)注、點贊??、收藏??、留言??支持,謝謝大家 js判斷是否為數(shù)字的方式很多: typeof 、 instanceof 、 Number.isNumber parseInt 、 parseFloat isNaN 、 isFinite Number.isNaN 、 Number.isFinite 正則表達式 終極方案 我們逐一介紹,希望能幫到大家。 typeof 判斷值是不是基

    2023年04月10日
    瀏覽(34)
  • js常用的幾種排序方式

    在JavaScript中,有多種排序方式可供選擇。以下是幾種常見的排序方式以及對應(yīng)的示例: 冒泡排序(Bubble Sort): 冒泡排序是一種比較簡單的排序算法,它重復(fù)地比較相鄰的兩個元素并交換位置,直到整個數(shù)組排序完成。 插入排序(Insertion Sort): 插入排序的思想是將數(shù)組分

    2024年02月14日
    瀏覽(26)
  • js刪除數(shù)組的幾種方式

    注意: 此方法改變數(shù)組的長度! 提示: 移除數(shù)組末尾的元素可以使用 pop() 方法。 slice() 方法可提取字符串的某個部分,并以新的字符串返回被提取的部分。 注意: slice() 方法不會改變原始數(shù)組。 注意:這種方法會改變原始數(shù)組。 返回值 如果刪除一個元素,則返回一個元素

    2024年02月16日
    瀏覽(26)
  • 前端中對象的幾種創(chuàng)建方式

    前端中對象的幾種創(chuàng)建方式

    創(chuàng)建對象的幾種方式: 1.字面量方式 2.工廠模式 3.構(gòu)造函數(shù)模式 4.原型模式 缺點:創(chuàng)建多個對象時,需要重復(fù)代碼,不能復(fù)用。 作用:批量創(chuàng)建同類型對象,降低代碼冗余度。 缺點:創(chuàng)建出的新對象,不知道是什么Person或者Animal類型,需看函數(shù)內(nèi)部代碼。 構(gòu)造函數(shù) 是一種特

    2023年04月08日
    瀏覽(17)
  • 前端技術(shù)中的幾種居中方式

    1、使用margin:0px auto可以使盒子水平居中,但要設(shè)置寬度。 2、在父元素中使用text-align:center可以將子元素設(shè)置水平居中,但子元素必須為行內(nèi)元素或行內(nèi)塊元素。 3、使用絕對定位,父相子絕的原則,在子元素中設(shè)置left:50%和transform:translateX(-50%)??梢圆辉O(shè)置寬高。 ? ? ? 這里

    2024年02月04日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包