對象.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 及以上版本
相關用法
- JavaScript Object toLocaleString()用法及代碼示例
- JavaScript Object toString()用法及代碼示例
- JavaScript Object valueOf()用法及代碼示例
- JavaScript Object hasOwnProperty()用法及代碼示例
- JavaScript Object getOwnPropertyDescriptor()用法及代碼示例
- JavaScript Object getOwnPropertyDescriptors()用法及代碼示例
- JavaScript Object getOwnPropertyNames()用法及代碼示例
- JavaScript Object getOwnPropertySymbols()用法及代碼示例
- JavaScript Object __defineGetter__()用法及代碼示例
- JavaScript Object keys()用法及代碼示例
- JavaScript Object propertyIsEnumerable()用法及代碼示例
- JavaScript Object getPrototypeOf()用法及代碼示例
- JavaScript Object freeze()用法及代碼示例
- JavaScript Object is()用法及代碼示例
- JavaScript Object values()用法及代碼示例
- JavaScript Object isPrototypeOf()用法及代碼示例
- JavaScript Object hasOwn()用法及代碼示例
- JavaScript Object isFrozen()用法及代碼示例
- JavaScript Object entries()用法及代碼示例
- JavaScript Object isSealed()用法及代碼示例
- JavaScript Object create()用法及代碼示例
- JavaScript Object seal()用法及代碼示例
- JavaScript Object.keys()用法及代碼示例
- JavaScript Object.values()用法及代碼示例
- JavaScript Object.entries()用法及代碼示例
注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 JavaScript Object assign() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。