js---26组合模式

Posted 672530440

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js---26组合模式相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8 src=../commons/CommonUtil.js ></script>
        <script>
            
            // 组合模式 
            /*
             * 场景模拟:
             *  -> 公司 
             *            -> 财务部门
             *                        -> 张一
             *                        -> 张二
             *                        -> 张三
             *            -> 销售部门
             *                        -> 张四
             *                        -> 张五
             *                        -> 张六
             *    
             *        实际的任务具体是落实到人上去实施的 也就是说只有人才具有具体的方法实现
             *            
             */            
             
             
             var Org = function(name){
                  this.name = name ; 
                 this.depts = [] ;
             };
             Org.prototype = {
                 constructor:Org , 
                addDepts:function(child){//形参不写数据类型
                    this.depts.push(child);//this一般指的是Org对象
                    return this ;
                } , 
                getDepts:function(){
                    return this.depts;
                }
             };
             
             
             var Dept = function(name){
                  this.name = name ; 
                 this.persons = [] ;
             };
             Dept.prototype = {
                 constructor:Dept , 
                addPersons: function(child){
                    this.persons.push(child);
                    return this ;
                } , 
                getPersons:function(){
                    return this.persons;
                }
             };
             
             var Person = function(name){
                  this.name = name ; 
             };
             Person.prototype = {
                 constructor : Person ,
                hardworking : function(){
                    document.write(this.name + ...努力工作!);
                } ,
                sleeping : function(){
                    document.write(this.name + ...努力睡觉!);
                }
             };
             
             
             var p1 = new Person(张1);
             var p2 = new Person(张2);
             var p3 = new Person(张3);
             var p4 = new Person(张4);
             var p5 = new Person(张5);
             var p6 = new Person(张6);
             
             var dept1 = new Dept(开发部门);
             dept1.addPersons(p1).addPersons(p2).addPersons(p3);
             var dept2 = new Dept(销售部门);
             dept2.addPersons(p4).addPersons(p5).addPersons(p6);
             
             var org = new Org(bjsxt);
             org.addDepts(dept1).addDepts(dept2);
             
             // 需求: 具体的让一个人(张3)去努力工作
             //org.getDepts()
             org.hardworking(开发部门);
             for(var i = 0 ,depts = org.getDepts(); i<depts.length;i++ ){//for循环中也不写数据类型
                    for(var j = 0 ,persons = depts[i].getPersons(); j < persons.length ; j++){
                        if(persons[j].name === 张6){
                            persons[j].hardworking();
                        }
                    }
             }
            
            
            
            
            
        </script>
    </head>
    <body>
    </body>
</html>

 

以上是关于js---26组合模式的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 代码片段

如何组合绑定片段而不将它们包装在 XML 文字中

48个值得掌握的JavaScript代码片段(上)

Tailwind.css 体验总结

Tailwind.css 体验总结

用于从 cloudkit 检索单列的代码模式/片段