El Mètode Object.assign(). s'utilitza per copiar els valors i les propietats d'un o més objectes d'origen a un objecte de destinació. Invoca getters i setters ja que utilitza tant [[Get]] a la font com [[Set]] a l'objectiu.
Sintaxi:
Object.assign(target, ...sources);>
Paràmetres:
- objectiu : és l'objecte de destinació al qual s'han de copiar els valors i les propietats.
- fonts : és l'objecte font des del qual s'han de copiar els valors i les propietats.
Valor de retorn:
Object.assign() retorna l'objecte objectiu.
Exemple 1: En aquest exemple, les propietats de l'objecte obj1, és a dir, {a: 10}, es copien a l'objecte de destinació 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);> |
embolcall de paraules css
>
>
Sortida:
Object { a: 1 }>
Exemple 2: En aquest exemple, les propietats de tres objectes font obj1, obj2, obj3 es copien a l'objecte de destinació new_obj. El valor de qualsevol parell clau-valor preexistent que existia a l'objecte anterior se sobreescriurà. Per exemple, obj1.b que té un valor de 10 ara es sobreescriurà amb obj2.b que té un valor de 20
Javascript
pete davidson
// 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);> |
>
>
Sortida:
Object { a: 10, b: 20, c: 30 }>
Exemple 3: En aquest exemple, les propietats de tres objectes d'origen obj1, obj2, obj3 es copien a l'objecte de destinació new_obj i l'objecte de destinació obté els valors sobreescrits.
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);> |
>
>
Sortida:
Object { a: 10, b: 20, c: 30 }>
Explicació:
En el codi anterior, les propietats es sobreescriuen per altres objectes que tenen les mateixes propietats posteriorment en el mateix ordre de paràmetres.
classe vs objecte en java
Aplicacions:
- Object.assign() s'utilitza per clonar un objecte, per combinar objectes amb les mateixes propietats.
Errors i excepcions :
- Es genera un TypeError si la propietat no es pot escriure.
- L'objecte de destinació només es pot canviar si les propietats s'afegeixen abans que es produeixi l'error.
- Object.assign() no introdueix valors font nuls o indefinits
Tenim una llista completa de mètodes d'objectes JavaScript, per comprovar-los, si us plau, seguiu-ho Referència completa d'objectes JavaScript article.
Navegadors compatibles:
- Google Chrome 6.0 i superior
- Internet Explorer 9.0 i posterior
- Mozilla 4.0 i superior
- Opera 11.1 i posterior
- Safari 5.0 i superior