ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:18.34KB ,
资源ID:3926185      下载积分:8 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenkunet.com/d-3926185.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JavaScript设计模式中的单例模式和观察者模式.docx)为本站会员(明湖)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(发送邮件至13560552955@163.com或直接QQ联系客服),我们立即给予删除!

JavaScript设计模式中的单例模式和观察者模式.docx

1、单例模式:Document/*就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问来访问该对象。*/单例模式核心代码functionPerson()this.name=Jack/全局varinstance=nullfunctionsingleton()if(instance=null)instance=newPerson()returninstance/*singleton第一次调用的时候+if条件判断,判断instan

2、ce=null+现在自己作用域里面没有instance,去到父级作用域访问+也就是拿到了全局作用域的instance+现在全局的instance就是一个null,if条件为true+给instance赋值给一个Person的实例(实例001)+现在全局的instance的值就是实例001+returninstance就是return实例001+p1得到的就是实例001*/varp1=singleton()/*singleton第二次调用的时候+if条件判断,判断instance=null+现在自己作用域里面没有instance,去到父级作用域访问+也就是拿到了全局的instance+现在全局的

3、instance就是一个实例001+if条件不满足,代码不执行+returninstance就是return实例001+p2得到的依旧是实例001*/varp2=singleton()/p1和p2得到的都是第一次执行的时候的实例/他们两个其实是一个地址console.log(p1=p2)/true观察者模式:Document/*观察者模式的使用场合就是:当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式。*/需要两个构造函数(被观察者和观察者)/1.被观察者(学生,小明)classStudentconstructor()/construct

4、or就相当于es5的构造函数体是一个构造器/一个学生本身的状态,应该是好好学习this.state=好好学习/准备一个数组,放监视学生的人/将来一旦状态从好好学习变成玩手机的时候,就让这个里面的所有老师触发技能this.observers=/方法/1.可以改变状态的方法setState(value)/可以把自己的状态改变this.state=value/状态一旦改变,就要通知监视他的人this.notify()/2.获取自己的状态getState()returnthis.state/3.添加观察着/向this.observers里面追加一个看着这个同学的人attach(observer)thi

5、s.observers.push(observer)/4.通知this.observers数组里面的每一个人,状态改变了notify()this.observers.forEach(item=item.qingjiazhang(this.state)/2.观察着(老师,班主任,教学主任,年级主任,.)classObserverconstructor(name)/用它来标明一下老师的类别this.name=name/方法,就是这些老师能触发的技能qingjiazhang(state)console.log(我是$this.name,因为你$state了,我要请你家长来!)varxiaoming=

6、newStudent()/被观察者varbanzhuren=newObserver(班主任)/观察者varjiaowuzhuren=newObserver(教务主任)/观察者varnianjizhuren=newObserver(年级主任)/观察者/让班主任看着小明xiaoming.attach(banzhuren)/让教务主任看着小明xiaoming.attach(jiaowuzhuren)/让年级主任看着小明xiaoming.attach(nianjizhuren)/当小明状态改变的时候/xiaoming.setState()就能改变小明现在的状态/就会触发xiaoming.notify()/就会把xiaoming.observers这个数组里面的每一个对象的请家长技能调用xiaoming.setState(玩手机)console.log(xiaoming)

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报