|
类与类的通信,一共分为两种:
1. 无中介者模式;采用 发布、订阅的方式 【注:也叫观察者模式】- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <title>类与类之间的通信 发布订阅模式</title>
- <meta name="description" content="">
- <meta name="keywords" content="">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
- <link href="style/reset.css" rel="stylesheet">
- <link href="style/common.css" rel="stylesheet">
- <style>
- h4{
- text-align: center;
- }
- </style>
- </head>
- <body>
- <h4>测试</h4>
- <script>
- function Teacher(){
- this.students =[];
- }
- Teacher.prototype.liouzuoye = function(txt){
- for(var i =0; i<this.students.length; i++){
- //在这调用 student 自己的方法 接收 老师留下的作业
- this.students[i].listen(txt);
- }
- }
- function Student(name,myteacher){
- this.name = name;
- this.teacher = myteacher;
- this.teacher.students.push(this);
- }
- Student.prototype.listen = function(txt){
- alert('我是'+this.name+',收到了老师留下的作业'+txt)
- console.log(1)
- }
- var laoshi = new Teacher(); //这是发布者
-
- var xiaoming = new Student('小明',laoshi); //这是订阅者
- var dali = new Student('大力',laoshi); //这是订阅者
- var sansui = new Student('sansui',laoshi); //这是订阅者
- laoshi.liouzuoye('写我爱你三十遍');
- </script>
- </body>
- </html>
复制代码
2. 类与类之间是中介者模式,可以通过中介者找到对方,类似于canvas 像素鸟里的 碰撞检测
|
|