亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

開(kāi)發(fā)中常用的JS知識(shí)點(diǎn)集錦

awesome23 / 2538人閱讀

摘要:索引對(duì)象深拷貝網(wǎng)絡(luò)圖片轉(zhuǎn)在線圖片點(diǎn)擊下載對(duì)象深拷貝對(duì)象深拷貝對(duì)象深拷貝對(duì)象深拷貝對(duì)象的深拷貝一級(jí)屬性拷貝和多級(jí)屬性嵌套拷貝深拷貝函數(shù)滿足屬性多級(jí)嵌套處理重復(fù)引用,防止死循環(huán)屬性為對(duì)象,遞歸深度復(fù)制測(cè)試對(duì)象的深拷貝大錘一級(jí)屬性深拷貝的函數(shù)特性

索引

1、對(duì)象深拷貝

2、網(wǎng)絡(luò)圖片轉(zhuǎn)base64, 在線圖片點(diǎn)擊下載

3、對(duì)象深拷貝

4、對(duì)象深拷貝

5、對(duì)象深拷貝

6、對(duì)象深拷貝

1、對(duì)象的深拷貝(一級(jí)屬性拷貝和多級(jí)屬性嵌套拷貝)

//深拷貝函數(shù)(滿足屬性多級(jí)嵌套)
function deepCloneObj(sourceObj){ var obj = (sourceObj instanceof Array) ? [] : {}; for (var key in sourceObj){ var tmp = sourceObj[key]; //處理重復(fù)引用,防止死循環(huán)
        if (tmp === sourceObj){ continue; 
        } if (typeof tmp === "object"){
            obj[key] = arguments.callee(tmp); //屬性為對(duì)象,遞歸深度復(fù)制
 } else{
            obj[key] = tmp;
        }
    } return obj;
} //

1、測(cè)試對(duì)象的深拷貝

var obj = {info:{name:"大錘"}, sign: "xxx"}; var obj2 = Object.assign({}, obj);  //一級(jí)屬性深拷貝 (es6的Object.assign函數(shù)特性)
var obj3 = {...obj};            //一級(jí)屬性深拷貝 (es6擴(kuò)展運(yùn)算符)
var obj4 =  deepCloneObj(obj);  //遞歸深拷貝所有層級(jí)屬性
var obj5 = JSON.parse(JSON.stringify(obj)); //深拷貝所有層級(jí)屬性
 console.log("obj: ", JSON.stringify(obj));
console.log("obj2: ", JSON.stringify(obj2));
console.log("obj3: ", JSON.stringify(obj3));
console.log("obj4: ", JSON.stringify(obj4));
console.log("obj5: ", JSON.stringify(obj5));
console.log(".........end..........");

setTimeout(function(){

    obj.sign = "a**b"; 
    obj.info.name = "一二三";
    console.log("
****update info ****");
    console.log("obj: ", JSON.stringify(obj));
    console.log("obj2: ", JSON.stringify(obj2));
    console.log("obj3: ", JSON.stringify(obj3));
    console.log("obj4: ", JSON.stringify(obj4));
    console.log("obj5: ", JSON.stringify(obj5));
    console.log(".........end..........");
},100); /* 打印日志結(jié)果:
obj:  {"info":{"name":"大錘"},"sign":"xxx"}
obj2:  {"info":{"name":"大錘"},"sign":"xxx"}
obj3:  {"info":{"name":"大錘"},"sign":"xxx"}
obj4:  {"info":{"name":"大錘"},"sign":"xxx"}
obj5:  {"info":{"name":"大錘"},"sign":"xxx"}
.........end..........

****update info ****
obj:  {"info":{"name":"一二三"},"sign":"a**b"}   //只拷貝了第一級(jí)屬性
obj2:  {"info":{"name":"一二三"},"sign":"xxx"}   //只拷貝了第一級(jí)屬性
obj3:  {"info":{"name":"一二三"},"sign":"xxx"}   //只拷貝了第一級(jí)屬性
obj4:  {"info":{"name":"大錘"},"sign":"xxx"}     //所有層級(jí)深拷貝
obj5:  {"info":{"name":"大錘"},"sign":"xxx"}    //所有層級(jí)深拷貝 */

//2、測(cè)試數(shù)組的深拷貝

setTimeout(function(){
    console.log("

.....數(shù)組的深拷貝測(cè)試...."); var arr = [{name: "小明"}, true, 18]; var arr2 = Object.assign([], arr); var arr3 = [...arr2]; var arr4 = deepCloneObj(arr); var arr5 = JSON.parse(JSON.stringify(arr));

    console.log("arr: ", JSON.stringify(arr));
    console.log("arr2: ", JSON.stringify(arr2));
    console.log("arr3: ", JSON.stringify(arr3));
    console.log("arr4: ", JSON.stringify(arr4));
    console.log("arr5: ", JSON.stringify(arr5));
    console.log("......end......
");

    setTimeout(function(){

        arr[0].name = "五六七", arr[1] = false, arr[2] = 99;
        console.log("arr: ", JSON.stringify(arr));
        console.log("arr2: ", JSON.stringify(arr2));
        console.log("arr3: ", JSON.stringify(arr3));
        console.log("arr4: ", JSON.stringify(arr4));
        console.log("arr5: ", JSON.stringify(arr5));

    }, 100); /* 數(shù)組測(cè)試打印日志結(jié)果:
    .....數(shù)組的深拷貝測(cè)試....
    arr:  [{"name":"小明"},true,18]
    arr2:  [{"name":"小明"},true,18]
    arr3:  [{"name":"小明"},true,18]
    arr4:  [{"name":"小明"},true,18]
    arr5:  [{"name":"小明"},true,18]
    ......end......

    arr:  [{"name":"五六七"},false,99]
    arr2:  [{"name":"五六七"},true,18]    //只拷貝了第一級(jí)屬性
    arr3:  [{"name":"五六七"},true,18]   //只拷貝了第一級(jí)屬性
    arr4:  [{"name":"小明"},true,18]    //所有層級(jí)深拷貝
    arr5:  [{"name":"小明"},true,18]   //所有層級(jí)深拷貝 */ },1000);

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/108769.html

相關(guān)文章

  • 后臺(tái)開(kāi)發(fā)常問(wèn)面試題集錦(問(wèn)題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問(wèn)題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問(wèn)題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    spacewander 評(píng)論0 收藏0
  • 后臺(tái)開(kāi)發(fā)常問(wèn)面試題集錦(問(wèn)題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問(wèn)題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問(wèn)題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    xfee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<