Proksi dalam JavaScript ialah objek khas yang membolehkan anda menyesuaikan gelagat operasi asas (cth., carian harta, tugasan, penghitungan, panggilan fungsi, dll.) pada objek lain. Ia seperti mempunyai orang tengah yang nakal yang boleh memintas dan mengubah interaksi dengan objek.
Proksi berguna untuk pelbagai sebab:
Pengesahan: Pastikan integriti data dengan mengesahkan tugasan.
Pengelogan: Jejaki operasi pada objek untuk nyahpepijat atau pemantauan.
Nilai Lalai: Berikan nilai lalai apabila sifat diakses.
Kawalan Akses: Hadkan atau ubah suai akses kepada sifat tertentu.
Sifat Maya: Tentukan sifat yang tidak wujud secara fizikal pada objek.
Bayangkan anda mempunyai anak bernama Timmy, dan anda ingin memastikan dia tidak makan terlalu banyak biskut. Anda bertindak sebagai ibu bapa yang terlalu melindungi, memantau dan mengawal pengambilan kukinya.
let timmy = { cookies: 3 }; let overprotectiveParent = new Proxy(timmy, { get(target, property) { console.log(`Overprotective Parent: "Timmy currently has ${target[property]} ${property}."`); return target[property]; }, set(target, property, value) { if (property === 'cookies' && value > 5) { console.log('Overprotective Parent: "No, Timmy, you can’t have more than 5 cookies!"'); return false; } console.log(`Overprotective Parent: "Alright, Timmy, you can have ${value} ${property}."`); target[property] = value; return true; } }); // Checking Timmy's cookies console.log(overprotectiveParent.cookies); // Overprotective Parent: "Timmy currently has 3 cookies." // Trying to give Timmy too many cookies overprotectiveParent.cookies = 6; // Overprotective Parent: "No, Timmy, you can’t have more than 5 cookies!" // Setting a reasonable number of cookies overprotectiveParent.cookies = 4; // Overprotective Parent: "Alright, Timmy, you can have 4 cookies." console.log(overprotectiveParent.cookies); // Overprotective Parent: "Timmy currently has 4 cookies."
Atas ialah kandungan terperinci Proksi dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!