Välityspalvelin ES6:ssa toteuttaa tarkkailijatilan
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Johdatus välityspalvelimeen
Välityspalvelin ES6:ssa on erityinen objekti, jota käytetään välityspalvelinobjektien luomiseen. Sen avulla voimme määrittää mukautettuja toimintoja, kuten siepata ja muokata objektin oletustoimintoja. Välityspalvelinta voidaan käyttää erilaisten kohteiden toimintojen sieppaamiseen, mukaan lukien ominaisuuksien käyttö, osoitus, toimintokutsut jne.
Välityspalvelimen tehtävänä on asettaa sieppauskerros ennen kohdeobjektia, joka voi siepata ja mukauttaa kohdeobjektin eri toimintoja. Välityspalvelimen avulla voimme toteuttaa toimintoja, kuten pääsynvalvontaa, tietojen varmentamista ja kohdeobjektien attribuuttien kaappausta.
Välityspalvelin kääri kohdeobjektin välityspalvelinobjektiin ja tarjoaa joukon koukkutoimintoja (kutsutaan myös "trapsiksi"), jotka voivat toimia välityspalvelinobjektin kanssa. Kun käytämme välityspalvelinobjektia, kutsumme itse asiassa näitä koukkufunktioita ja käsittelemme niitä tarpeen mukaan.
Johdatus välityspalvelimen attribuuttitoimintoihin
- get(target, propKey, Receiver): Sieppaa objektin ominaisuuksien lukeminen
- set(target, propKey, value, Receiver): sieppaa objektin ominaisuuksien asettamisen ja palauttaa Boolen arvon.
- has(target, propKey): Keskeytä propKeyn toiminta välityspalvelimessa ja palauta Boolen arvo.
- deleteProperty(target, propKey): katkaisee poistovälityspalvelimen[propKey]-toiminnon ja palauttaa Boolen arvon.
- ownKeys(target): Sieppaa Object.getOwnPropertyNames(proxy), Object.getOwnPropertySymbols(proxy), Object.keys(proxy), for...in silmukassa ja palauta taulukko. Tämä menetelmä palauttaa kaikkien kohdeobjektin omien ominaisuuksien ominaisuusnimet, kun taas Object.keys():n palautustulos sisältää vain kohdeobjektin omat läpikäytävät ominaisuudet.
- getOwnPropertyDescriptor(target, propKey): sieppaa Object.getOwnPropertyDescriptor(proxy, propKey) ja palauttaa ominaisuuden kuvausobjektin.
- defineProperty(target, propKey, propDesc): sieppaa Object.defineProperty(proxy, propKey, propDesc), Object.defineProperties(proxy, propDescs) ja palauttaa Boolen arvon.
- preventExtensions(target): sieppaa Object.preventExtensions(proxy) ja palauttaa Boolen arvon.
- getPrototypeOf(target): Sieppaa Object.getPrototypeOf(proxy) ja palauta objekti.
- isExtensible(target): sieppaa Object.isExtensible(proxy) ja palauttaa Boolen arvon.
- setPrototypeOf(target, proto): sieppaa Object.setPrototypeOf(proxy, proto) ja palauttaa Boolen arvon. Jos kohdeobjekti on funktio, kaksi lisätoimintoa voidaan siepata.
- apply(target, object, args): siepata välityspalvelimen ilmentymän toiminta funktiokutsuna, kuten proxy(...args), proxy.call(object, ...args), proxy.apply(...).
- construct(target, args): Kaappaa välityspalvelimen ilmentymän toiminta rakentajakutsuna, kuten new proxy(...args).
käyttääProxy
Toteuta tarkkailijakuvio
