Proxy di es6 mengimplementasikan mode pengamat
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Pengantar Proksi
Proxy di ES6 adalah objek khusus yang digunakan untuk membuat objek proxy. Hal ini memungkinkan kita untuk menentukan perilaku khusus, seperti mencegat dan memodifikasi tindakan default suatu objek. Proksi dapat digunakan untuk mencegat berbagai operasi pada objek, termasuk akses properti, penugasan, pemanggilan fungsi, dll.
Fungsi Proxy adalah untuk menyiapkan lapisan intersepsi sebelum objek target, yang dapat mencegat dan menyesuaikan berbagai operasi pada objek target. Dengan menggunakan Proxy, kita dapat mengimplementasikan fungsi seperti kontrol akses, verifikasi data, dan pembajakan atribut objek target.
Proxy membungkus objek target dengan objek proxy dan menyediakan serangkaian fungsi kait (juga disebut "perangkap") yang dapat beroperasi pada objek proxy. Saat kami mengoperasikan objek proxy, kami sebenarnya memanggil fungsi kait ini dan memprosesnya sesuai kebutuhan.
Pengantar operasi atribut Proxy
- get(target, propKey, receiver): Mencegat pembacaan properti objek
- set(target, propKey, value, receiver): memotong pengaturan properti objek dan mengembalikan nilai Boolean.
- has(target, propKey): Mencegah pengoperasian propKey di proxy dan mengembalikan nilai Boolean.
- deleteProperty(target, propKey): Mencegat operasi penghapusan proxy[propKey] dan mengembalikan nilai Boolean.
- ownKeys(target): Intercept Object.getOwnPropertyNames(proxy), Object.getOwnPropertySymbols(proxy), Object.keys(proxy), for...in loop dan mengembalikan array. Metode ini mengembalikan nama properti dari semua properti objek target, sedangkan hasil pengembalian Object.keys() hanya menyertakan properti traversable objek target.
- getOwnPropertyDescriptor(target, propKey): mencegat Object.getOwnPropertyDescriptor(proxy, propKey) dan mengembalikan objek deskripsi properti.
- mendefinisikanProperty(target, propKey, propDesc): mencegat Object.defineProperty(proxy, propKey, propDesc), Object.defineProperties(proxy, propDescs) dan mengembalikan nilai Boolean.
- preventExtensions(target): Mencegat Objek.preventExtensions(proxy) dan mengembalikan nilai Boolean.
- getPrototypeOf(target): Intercept Object.getPrototypeOf(proxy) dan mengembalikan objek.
- isExtensible(target): mencegat Object.isExtensible(proxy) dan mengembalikan nilai Boolean.
- setPrototypeOf(target, proto): mencegat Object.setPrototypeOf(proxy, proto) dan mengembalikan nilai Boolean. Jika objek target adalah sebuah fungsi, ada dua operasi tambahan yang dapat dicegat.
- apply(target, object, args): Mencegah pengoperasian instance Proxy sebagai pemanggilan fungsi, seperti proxy(...args), proxy.call(object, ...args), proxy.apply(...).
- konstruk(target, args): Mencegah pengoperasian instance Proxy sebagai panggilan konstruktor, seperti proksi baru(...args).
menggunakanProxy
Terapkan pola pengamat
