js---26組合模式

來源:互聯網
上載者:User

標籤:cti   html   ret   任務   doc   sleep   類比   pre   common   

<!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組合模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.