美文网首页
4.2、 观察者模式js面向对象实现

4.2、 观察者模式js面向对象实现

作者: 水电梁师傅 | 来源:发表于2018-07-14 20:23 被阅读13次

select框应该是被观察者,而且其他的div发现他改动了,那么就做出相应变化,所以其他div是观察者,一旦select做出改动,应该通知其他的观察者

    <body>
        <select id='observed' >
            <option value='减肥'>减肥广告</option>
            <option value='游戏'>页游广告</option>
        </select>
        <div id='ink' style="width: 100px;height: 100px;background-color: pink;"></div>
        <div id='pul' style="width: 100px;height: 100px;background-color: purple;"></div>
    <script type="text/javascript" src="jquery-3.3.1.min.js" ></script>
    <script>
        var seleted = document.getElementById('observed');
        seleted.observes = {};
        
        seleted.attach = function(k,v)
        {
            seleted.observes[k] = v;
        }
        seleted.detach = function(k)
        {
            delete selected.observes[k];
        }
        seleted.onchange = seleted.notify = function()
        {
            

            for(var key in this.observes)
            {
                console.log(key);
                console.log(this.observes)
                this.observes[key].upd(this);
            }
        }
        document.getElementById('ink').upd = function(observes)
        {
            console.log(observes)
            if(observes.value == '减肥')
            {
                this.innerHTML= '减肥广告' 
            }else if(observes.value == '游戏')
            {
                this.innerHTML='是兄弟就来砍我'
            }
        }
        document.getElementById('pul').upd = function(observes)
        {
            if(observes.value == '减肥')
            {
                this.innerHTML='减肥广告'
            }else if(observes.value == '游戏')
            {
                this.innerHTML = '是兄弟就来砍我'
            }
        }
        
        seleted.attach('pul',document.getElementById('pul'))
        seleted.attach('ink',document.getElementById('ink'))
        
    </script>
    </body>

相关文章

  • 4.2、 观察者模式js面向对象实现

    select框应该是被观察者,而且其他的div发现他改动了,那么就做出相应变化,所以其他div是观察者,一旦sel...

  • js代码题

    js对象的深度克隆 js数组去重 js常用设计模式的实现思路,单例,工厂,代理,装饰,观察者模式等

  • Android中的设计模式之观察者模式

    参考 《设计模式:可复用面向对象软件的基础 》5.7 Observer 观察者 对象行为型模式 《设计模式解析》 ...

  • 2018-01-18

    js中的面向对象核心 js是基于对象的编程语言,在后面的学习中我们通过一种模式使其转化成为面向对象的语言。js面向...

  • OC -> 观察者模式实现原理

    观察者模式实现原理 简介 观察者模式:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象...

  • [基础] 观察者模式

    观察者模式面向的需求是:A 对象(观察者)对 B 对象(被观察者)的某种变化高度敏感,需要在 B 变化的一瞬间做出...

  • JS面向对象精要(二)_函数

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(三)_理解对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(四)_构造函数和原型对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(五)_继承

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

网友评论

      本文标题:4.2、 观察者模式js面向对象实现

      本文链接:https://www.haomeiwen.com/subject/afoypftx.html