访问者

访问者 - 从某个角度遍历数据

    /**
     * 人员
     */
    function Person(_name,_work,_money)
    {
        this.name    = _name;
        
        this.work    = _work;
        
        this.money   = _money;
    }
    
    
    /**
     * 公司
     */
    function Company()
    {
        
        //数据
        var persons = [];
        
        
        /**
         * 添加
         */
        this.add = function(_person)
        {
            persons.push(_person)
        }
        
        /**
         * 获取
         */
        this.accept = function(visitor)
        {
            console.log(visitor.name+'获取数据:')
            
            for(var i=0;i<persons.length;i++)
            {
                visitor.read(persons[i])
            }
        }
    }
    
    
    
    /**
     * 财务
     */
    function Finance(_name)
    {
        this.name = _name;
        
        this.read = function(_person)
        {
            console.log(_person.name+'-'+_person.money);
        }
    }
    
    
    /**
     * 总监
     */
    function CTO(_name)
    {
        this.name = _name;
        
        this.read = function(_person)
        {
            console.log(this.name+':  '+_person.name+'-'+_person.work);
        }
    }
    
    
    /**
     * 添加员工
     */
    var company = new Company();
    company.add(new Person('小明','程序员','12k'));
    company.add(new Person('小红','设计师','10k'));
    company.add(new Person('成龙','业务员','20k'));
    
    
    /**
     * 财务获取员工数据
     */
    company.accept(new Finance('财务'))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容