Rumah  >  Artikel  >  hujung hadapan web  >  Corak reka bentuk JavaScript kemahiran corak proksi klasik_javascript

Corak reka bentuk JavaScript kemahiran corak proksi klasik_javascript

WBOY
WBOYasal
2016-05-16 15:13:531716semak imbas

1. Konsep model agensi

Nota: Seperti namanya, satu kelas digunakan untuk menggantikan kelas lain untuk melaksanakan fungsi kaedah Mod ini agak serupa dengan mod hiasan Perbezaannya ialah mod proksi memulakan kelas objek proksi bagi pihak klien , manakala mod hiasan menggunakan antara muka atau Rujukan parameter penghias awal digunakan untuk melaksanakan.

Penjelasan: Agensi hartanah boleh membantu penjual menjual rumah kepada pembeli Di tengah-tengah, penjual boleh menentukan harga jualan juga boleh mencadangkan jenis rumah yang ingin dibeli, dan pengantara boleh membantu mengendalikan langkah perantaraan. Akhirnya perjanjian dibuat. Perantara boleh bertindak sebagai ejen untuk banyak jualan dan penyewaan rumah pada masa yang sama.

2. Peranan dan langkah berjaga-jaga mod proksi

Fungsi mod:

1. Proksi jauh (satu objek objek proksi setempat dalam ruang yang berbeza)

2. Proksi maya (buat objek mahal seperti yang diperlukan, seperti menggantikan sementara imej sebenar dengan ruang letak semasa memaparkan halaman web)

3. Ejen keselamatan (mengawal hak akses kepada objek yang disahkan)

4. Bimbingan pintar (memanggil ejen objek untuk mengendalikan perkara lain seperti mekanisme pengumpulan sampah)

Nota:

1 Jangan menyalahgunakan proksi, kadangkala ia hanya menambahkan kerumitan pada kod

3. Kod mod ejen dan ringkasan praktikal

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
//代理模式需要三方
//1.买家
function maijia(){
this.name = "小明";
this.money = "30万";
}
//2.中介
function zhongjie(){
}
zhongjie.prototype.maifang = function(){
//new fongdong(new maijia()).maifang("20万");
new fongdong(new maijia()).maifang("20万");
}
//3.卖家
function fongdong(maijia){
this.maijia_name = maijia.name;
this.maijia_money = maijia.money;
this.maifang = function(money){
// alert("收到了来自【"+this.maijia_name+"】"+money+"人民币");
alert("收到了来自【"+this.maijia_name+"】"+this.maijia_money+"人民币");
}
}
(new zhongjie()).maifang();
</script>
<script>
// A2B
function A(){
this.money = "20RMB";
}
function to(){
if(!(this instanceof to)){
return new to;
}
}
to.prototype.maifang = function(){
var a = new A();
new B().maifang(a.money);
}
function B(){
this.maifang = function(money){
alert("收到了钱"+money);
}
}
(new to()).maifang();
to().maifang();
</script>
</body>
</html>

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn