當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript Object assign()用法及代碼示例


對象.assign()方法用於將一個或多個源對象的值和屬性複製到目標對象。它調用 getter 和 setter,因為它在源上使用 [[Get]],在目標上使用 [[Set]]。

用法:

Object.assign(target, ...sources);

參數:

  • target:它是值和屬性必須複製到的目標對象。
  • sources:它是必須從中複製值和屬性的源對象。

返回值:

對象.assign()返回目標對象。

示例1:在此示例中,對象 “obj1” 的屬性即 { a: 10 } 被複製到目標對象 “new_obj”。

Javascript


// creating an object constructor 
// and assigning values to it
const obj1 = { a: 1 };
// creating a target object and copying values and 
// properties to it using object.assign() method
// Here, obj1 is the source object
const new_obj = Object.assign({}, obj1);
// Displaying the target object 
console.log(new_obj);

輸出:

Object { a: 1 }

示例 2:在此示例中,三個源對象“obj1、obj2、obj3”的屬性被複製到目標對象“new_obj”。先前對象中存在的任何預先存在的鍵值對的值將為over-written。例如,值為 10 的 obj1.b 現在將被值為 20 的 obj2.b 覆蓋

Javascript


// creating 3 object constructors and assigning values to it
let obj1 = { a: 10 };
let obj2 = { b: 20 };
let obj3 = { c: 30 };
// Creating a target object and copying values 
// and properties to it using object.assign() method 
let new_obj = Object.assign({}, obj1, obj2, obj3);
// Displaying the target object
console.log(new_obj);

輸出:

Object { a: 10, b: 20, c: 30 }

示例 3:在此示例中,三個源對象“obj1、obj2、obj3”的屬性被複製到目標對象“new_obj”,並且目標對象獲取覆蓋的值。

Javascript


// Creating 3 object constructors and assigning values to it
let obj1 = { a: 10, b: 10, c: 10 };
let obj2 = { b: 20, c: 20 };
let obj3 = { c: 30 };
// Creating a target object and copying values and 
// properties to it using object.assign() method
let new_obj = Object.assign({}, obj1, obj2, obj3);
// Displaying the target object
console.log(new_obj);

輸出:

Object { a: 10, b: 20, c: 30 }

解釋:

在上麵的代碼中,屬性被稍後以相同參數順序具有相同屬性的其他對象覆蓋。

應用:

  • 對象.assign()用於克隆對象,合並具有相同屬性的對象。

錯誤和異常

  • 如果該屬性不可寫,則會引發TypeError。
  • 僅當在引發錯誤之前添加屬性時,才能更改目標對象。
  • 對象.assign()不會引發 null 或未定義的源值

我們有 JavaScript 對象方法的完整列表,要檢查這些方法,請瀏覽此JavaScript 對象完整參考文章。

支持的瀏覽器:

  • 穀歌瀏覽器 6.0 及以上版本
  • Internet Explorer 9.0 及以上版本
  • Mozilla 4.0 及以上版本
  • Opera 11.1 及以上版本
  • Safari 5.0 及以上版本


相關用法


注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 JavaScript Object assign() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。