JS 面向对象之间 类与类的通信
类与类的通信,一共分为两种: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.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 像素鸟里的 碰撞检测
页:
[1]