Маалыматтарды өткөрүү шилтеме жана маані аркылуу кантип иштейт?
sobes.tech AI
AIден жооп
Маалыматты берүү мааниси боюнча (by value) жана шилтемеси (by reference) аныктайт, оригиналдык өзгөрмө кандайча өзгөрөтүлөт анын функцияга өткөрүлүшүндө же менчикке берүүдө.
Маалыматты берүү мааниси боюнча:
Өзгөрмөнүн маанисинин көчүрмөсү түзүлөт. Бул көчүрмө ичинде жасалган өзгөртүүлөр оригиналдык өзгөрмөгө таасир этпейт. Бул примиативдүү түрлөр үчүн ылайыктуу (сан, саптар, булев маанилер, null, undefined, Symbol, BigInt).
// Маалыматты берүү мааниси боюнча
let a = 10;
function modifyValue(num) {
num = 20; // көчүрмө өзгөрөтүлөт
}
modifyValue(a);
console.log(a); // 10 деп чыгат - оригиналдык мааниси өзгөргөн жок
Шилтемеси аркылуу берүү:
Маалыматтын өзү эмес, анын шилтемеси (жаддагы дареги) өткөрүлөт. Бул шилтемеге жасалган өзгөртүүлөр оригиналдык өзгөрмөгө таасир этет. JavaScriptте бул объекттер үчүн колдонулат (массивдер жана функциялар кирет). Эскертүү: өткөрүлүп жатканда, объект эмес, анын шилтемеси өткөрүлөт. Функциянын ичинде параметрди кайра белгилөөдө, шилтемеге жаңы маанини берүү оригиналдык объектти өзгөртпөйт.
// Объекттер үчүн шилтемеси аркылуу берүү
let obj1 = { value: 10 };
function modifyObject(obj) {
obj.value = 20; // объекттин мүчөсү өзгөрөтүлөт
}
modifyObject(obj1);
console.log(obj1.value); // 20 деп чыгат - оригиналдык объект өзгөрдү
// Параметрди кайра белгилөө мисалы
let obj2 = { value: 10 };
function reassignObject(obj) {
obj = { value: 30 }; // obj жаңы объектке шилтемени өзгөртөт
}
reassignObject(obj2);
console.log(obj2.value); // 10 деп чыгат - оригиналдык объект өзгөргөн жок
| Өзгөчөлүк | Маалыматты берүү мааниси боюнча | Шилтемеси аркылуу берүү |
|---|---|---|
| Эмне өткөрүлөт | Маалыматтын көчүрмөсү | Шилтемеси (дареги) |
| Таасир этүү | Жок | Ооба (өзгөртүүлөргө) |
| JS маалымат түрлөрү | Примитивдүү түрлөрү | Объекттер |