代理模式js中很常见,es6有新增一个代理对象Proxy;在理解上可能有一定的困难,此代理模式和彼代理对象不太一样,具体看代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
//代理模式的实现小demo
var Girl = function(name){
this.name = name;
}
var Boy = function(girl){
this.girl = girl;
this.sendEmail = function(email){
console.log(`你好${this.girl.name},您有一封新消息:${email}`);
}
}
//定义一个中间代理的构造函数
function ProxyObj(girl){
//送达的人
this.girl = girl;
//替人送行的方法 代替男孩执行送信的方法
this.send=function(msg){
//帮男孩送信 首先new一个boy的实例 调用他的sendEmail方法
new Boy(this.girl).sendEmail(msg);
}
}
//实例化代理对象 并调用send方法
var psy = new ProxyObj(new Girl('热巴'));
psy.send('有一个男孩说喜欢你呀');//你好热巴,您有一封新消息:有一个男孩说喜欢你呀
</script>
</body>
</html>
不足之处,敬请校正。