The Metoda Object.assign(). se používá ke kopírování hodnot a vlastností z jednoho nebo více zdrojových objektů do cílového objektu. Vyvolává getry a nastavovače, protože používá jak [[Get]] na zdroji, tak [[Set]] na cíli.
Syntax:
Object.assign(target, ...sources);>
Parametry:
- cílová : Je to cílový objekt, do kterého je třeba zkopírovat hodnoty a vlastnosti.
- Zdroje : Je to zdrojový objekt, ze kterého je třeba kopírovat hodnoty a vlastnosti.
Návratová hodnota:
Object.assign() vrátí cílový objekt.
Příklad 1: V tomto příkladu jsou vlastnosti objektu obj1, tj. { a: 10 } zkopírovány do cílového objektu 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);> |
c# obsahuje řetězec
>
>
Výstup:
Object { a: 1 }> Příklad 2: V tomto příkladu jsou vlastnosti tří zdrojových objektů obj1, obj2, obj3 zkopírovány do cílového objektu new_obj. Hodnota jakéhokoli již existujícího páru klíč–hodnota, který existoval v předchozím objektu, bude přepsána. Například obj1.b, který má hodnotu 10, bude nyní přepsán obj2.b, který má hodnotu 20
Javascript
0,2 jako zlomek
// 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);> |
>
>
Výstup :
Object { a: 10, b: 20, c: 30 }> Příklad 3: V tomto příkladu jsou vlastnosti tří zdrojových objektů obj1, obj2, obj3 zkopírovány do cílového objektu new_obj a cílový objekt získá přepsané hodnoty.
Javascript
if-else java
// 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);> |
>
>
Výstup:
Object { a: 10, b: 20, c: 30 }> Vysvětlení:
Ve výše uvedeném kódu jsou vlastnosti přepsány jinými objekty, které mají později stejné vlastnosti ve stejném pořadí parametrů.
Aplikace:
- Object.assign() se používá pro klonování objektu, ke sloučení objektů se stejnými vlastnostmi.
Chyby a výjimky :
- Pokud vlastnost není zapisovatelná, vyvolá se chyba TypeError.
- Cílový objekt lze změnit, pouze pokud jsou vlastnosti přidány před vyvoláním chyby.
- Object.assign() nevyvolá hodnoty null nebo nedefinované zdrojové hodnoty
Máme úplný seznam metod objektů JavaScript, pro kontrolu si je projděte tímto Úplná reference objektu JavaScript článek.
Podporované prohlížeče:
- Google Chrome 6.0 a vyšší
- Internet Explorer 9.0 a vyšší
- Mozilla 4.0 a vyšší
- Opera 11.1 a vyšší
- Safari 5.0 a vyšší