Middle
Ի՞նչ մեթոդներ գիտես օբյեկտների կլոնավորման համար։
sobes.tech AI
Պատասխան AI-ից
JavaScript-ում օբյեկտները կլոնավորելու մի քանի եղանակ կա.
-
Ապակերտային պատճեն (shallow copy) — պատճենում է միայն հատկությունների վերևի մակարդակը, ներսի օբյեկտները մնում են հղումներ:
- Օգտագործելով
Object.assign():const clone = Object.assign({}, original); - Տարածման օպերատոր:
const clone = {...original};
- Օգտագործելով
-
Ամբողջական պատճեն (deep copy) — ստեղծում է օբյեկտի ամբողջական պատճենը բոլոր ներսի օբյեկտներով:
- JSON-ի միջոցով սերիալիզացիա և դեսերիալիզացիա (աշխատում է միայն պարզ օբյեկտների հետ, առանց ֆունկցիաների, ամսաթվերի և այլնի):
const deepClone = JSON.parse(JSON.stringify(original)); - Օգտագործելով հատուկ գրադարաններ, օրինակ
lodash:const _ = require('lodash'); const deepClone = _.cloneDeep(original);
- JSON-ի միջոցով սերիալիզացիա և դեսերիալիզացիա (աշխատում է միայն պարզ օբյեկտների հետ, առանց ֆունկցիաների, ամսաթվերի և այլնի):
-
Իմ սեփական կլոնավորման մեթոդի իրականացում — եթե օբյեկտը պարունակում է մեթոդներ կամ բարդ տիպեր, կարելի է իրականացնել
clone()մեթոդը դասի ներսում:
Ընտրությունը կախված է օբյեկտի կառուցվածքից և պատճենավորման պահանջներից: Պարզ օբյեկտների համար բավարար է մակերեսային պատճենը, բարդների համար՝ խորքային։