Dalam JavaScript, prinsip mod proksi adalah untuk menyediakan pengganti atau penghuni bagi objek untuk mengawal akses kepadanya dengan menyediakan proksi untuk objek, objek proksi mengawal akses kepada objek asal Rujukan ialah corak struktur objek.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.
Proksi ialah objek (proksi) yang digunakan untuk mengawal akses kepada objek sasaran. Untuk tujuan ini, ia mesti mempunyai antara muka yang sama dengan objek sasaran, tetapi ia berbeza daripada corak penghias kerana ia tidak membuat sebarang pengubahsuaian pada objek sasaran Tujuannya adalah untuk melambatkan masa permulaan objek "kompleks". . Dengan cara ini anda boleh memulakan objek sasaran apabila ia digunakan (terutamanya penting untuk bujang).
Menyediakan pengganti atau pemegang tempat untuk objek untuk mengawal akses kepadanya
Menyediakan proksi untuk objek dan objek proksi mengawal rujukan kepada objek asal. Corak proksi ialah corak struktur objek
Terdapat dua kategori corak proksi:
(1) Proksi biasa
(2) Proksi malas
Lihat sekeping kod:
function getSomething(value) { if (value > 10) { return value * 2; } }
Di sini kita mentakrifkan fungsi Jika nilai yang dihantar lebih besar daripada 10, maka kita kembalikan 2 kali ganda nilainya. Um. . . Ia agak bagus, tetapi ia mempunyai kekurangannya. Fungsi melakukan terlalu banyak perkara Tujuan kami adalah untuk mendapatkan dua kali ganda nilai parameter, dan kami membuat pertimbangan bersyarat di sini. (Sudah tentu ia tidak mempunyai apa-apa kesan di sini, saya hanya memberikan contoh mudah) Fungsi yang kita mahukan hanyalah untuk mengembalikan nilai.
Melihat sekeping kod:
function getSomething(value) { return value * 2; } function proxtGet(value) { if (value <10) return; return getSomething(value); }
Kini kami telah memisahkan fungsi getSomething dan menilai untuk menggunakan proxyGet untuk melakukannya, kemudian getSomething boleh melakukan perkaranya sendiri dengan selamat.
sebenarnya adalah sejenis proksi perlindungan Kami menyediakan kaedah proxyGet untuk melindungi objek sasaran Hanya mereka yang memenuhi syarat boleh mengendalikannya.
Jika suatu hari nanti tidak perlu membuat pertimbangan, maka kita boleh terus menghubungi getSomething untuk mendapatkan hasilnya.
Berikut ialah pengenalan kepada ejen maya:
Dalam pembangunan web, perkara yang paling mahal sudah pasti permintaan rangkaian Katakan kami mempunyai senarai yang mewakili maklumat fail latar belakang senarai dan ia akan Untuk menghantar permintaan untuk membungkus fail ke latar belakang, bagi anda yang mempunyai Kirin Arm, overhed rangkaian sedemikian adalah mimpi ngeri (dengan mengandaikan bahawa keperluan masa nyata operasi ini tidak terlalu tinggi), maka kami boleh beroperasi seperti ini untuk mengurangkan overhead kecil:
function sendFile(files) { // 做一些操作,然后发送文件信息给后台 console.log('发送成功'); } var proxySendFile = (function () { var caches = []; var timer = null; return function (file) { caches.push(file); if (timer) { return }; timer = setTimeout(function () { sendFile(caches); clearInterval(timer); timer = null; caches.length = 0; }, 2000) } } )()
Di sini sendFile ialah operasi menghantar fail Kami menggunakan proxySendFIle untuk memproksi operasi menghantar fail Hanya satu permintaan dimulakan untuk tahun 2000. Adakah anda fikir ia boleh ? Walaupun Lengan Qilin anda tidak dapat dihalang, tidak ada perbezaan antara anda dan orang lain di sini.
Cadangan berkaitan: Tutorial pembelajaran javascript
Atas ialah kandungan terperinci Apakah prinsip mod proksi JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!