Object.assign() 函數(shù)與...state函數(shù)

1、Object.assign()函數(shù)
Object.assign(target, source)
target為目標(biāo)對(duì)象
source為源對(duì)象
該函數(shù)的作用是以目標(biāo)對(duì)象為基礎(chǔ),將源對(duì)象中的內(nèi)容更新到目標(biāo)對(duì)象中,有則替換,無則新增

 var result01 = {type: '01', name: 'ming', age: 23};
 let result02 = {type: '02', marry: false};
 let result03 = {type: '03', age: 55}
 const result = Object.assign({}, result01, result02, result03);
 DLog(result,result.name,result.type,result01);

結(jié)果


image.png
var result01 = {type: '01', name: 'ming', age: 23};
let result02 = {type: '02', marry: false};
let result03 = {type: '03', age: 55}
const result = Object.assign(result01, result02, result03);
DLog(result,result.name,result.type,result01);

結(jié)果


image.png

由此可以看出,如果不需要改變目標(biāo)函數(shù),第一個(gè)參數(shù)就置為空對(duì)象

2、...state函數(shù)
測試01:

      let result01 = {type: '01', name: 'ming', age: 23};
        console.log(result01);
        console.log({...result01});
        console.log({result01});
        console.log([{...result01}]);

打印結(jié)果


image.png

說明 ...state 是把對(duì)象的元素拿出來作為一個(gè)新的集合

測試02:

      let result01 = {type: '01', name: 'ming', age: 23};
        let result02 = {type: '02', marry: false};
        let result03 = {type: '03', age: 55,address:'beijing'}
        const result = Object.assign({},result01, result02, result03);
        console.log({...result02,...result03});

打印結(jié)果


image.png

測試03:

      var arr0 = [0,1,2];
        var arr1 = [3,4];
        var arr3 = [arr0];
        var arr4 = [...arr0];
        console.log(arr3);
        console.log(arr4);

打印結(jié)果


image.png
      var arr0 = [0,1,2];
        var arr1 = [3,4];
        var arr3 = [arr0];
        var arr4 = [...arr0,{...arr1}];
        console.log(arr4);  

打印結(jié)果


image.png
       var arr0 = [0,1,2];
       var arr1 = [3,4,0];
       var arr3 = [arr0];
       var arr4 = [...arr0,...arr1];
       console.log(arr4);

打印結(jié)果


image.png

說明這是一個(gè)數(shù)據(jù)深拷貝的過程
把源對(duì)象的元素加入到目標(biāo)函數(shù)中
對(duì)象合并

這樣看...state與Object.assign()之間既有相似之處,也有各種特點(diǎn)
對(duì)比代碼與結(jié)果,不難理解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 屬性的簡潔表示法 ES6允許直接寫入變量和函數(shù),作為對(duì)象的屬性和方法。這樣的書寫更加簡潔。 上面代碼表明,ES6允...
    呼呼哥閱讀 3,008評(píng)論 0 2
  • 1 基本用法 Object.assign方法用于對(duì)象的合并,將源對(duì)象( source )的所有可枚舉屬性,復(fù)制到目...
    Api調(diào)用師閱讀 913評(píng)論 0 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,621評(píng)論 1 32
  • 楔子:某日的一個(gè)下午一場考試結(jié)束,他和她再次相遇了。不知從什么時(shí)候起,他開始注意她,不知從什么時(shí)間起開始喜歡上她。...
    素心君閱讀 1,084評(píng)論 0 1
  • 滴答……滴答……滴答…… 年輕的匠人一臉焦急的在鐘樓的廣場上來來回回的走著,視野在地面、磚縫、草叢里一點(diǎn)一點(diǎn)的搜尋...
    黃昏月影閱讀 439評(píng)論 0 3

友情鏈接更多精彩內(nèi)容