Modo de combinação: Combine um grupo de objetos em uma estrutura de árvore, trate o objeto combinado e o objeto folha de maneira unificada e ignore as diferenças entre eles (porque o objeto foliar também pode conter objetos foliares e se tornar um objeto combinado). Os objetos no modo de combinação podem ser apenas um relacionamento um para muitos, e não pode ocorrer muitos para um.
Unidade básica: um objeto combinado contém vários objetos de folha. Cada unidade básica pode ser um objeto de folha de outro objeto combinado. Uma pasta ou arquivo também pode ser o conteúdo de outras pastas, mas uma pasta ou arquivo não pode pertencer a várias pastas superiores ao mesmo tempo.
Ao implementar o modo de combinação no JavaScript, para garantir que o objeto combinado e o objeto folhas tenham o mesmo método de interface, as operações do mesmo grupo de objetos de folha devem ser consistentes.
exemplo:
// Defina o objeto combinado var pasro = function (nome) {this.name = name; this.parent = null; this.files = [];}; pasler.prototype.add = function (file) {file.parent = this; if (this.files.indexof (arquivo) ==== -1) {this.files.push (file);} else {console.log ('/'+file.name+'/' já existe, adicione falha ');}}; pasta.protype.scan = function () {if (this.parent) {console.log (' start scan/''+ '+this.name);} else {console.log (' Inicie a digitalização do diretório raiz: '+this.name);} // A chave está aqui, chame o método da interface de todos os seus objetos de folha SCAN () para (var i = 0, arquivo; file = this.files [i +er];); = this.files.indexof (file); if (n === -1) {console.log ('não é possível excluir: /''+File.name+'/' não existe: ');} if (n> = 0) {this.files.splice (n, 1) console.log (' »» Delted: (name) {this.name = name; this.parent = null;}; file.prototype.add = function () {console.log ('não pode ser adicionado abaixo do arquivo');}; file.protypey.scan = function () {console.log (iStE.Parent.name+':'+th This.Name); {console.log ('Não pode ser excluído: /''+File.name+'/''tno não existe:');}; // teste var pasro = new Folder ('diretório'); var pasta1 = new pasta ('aprendem material'); var pasta2 = nova pasta ('javascript'); var arquivo); File ('qq.jpg'); pasta.add (pasta1); pasta.add (pasta1); pasta.add (pasta2); pasta1.add (file1); pasler2.add (file2); // 'material de aprendizagem' adicionado com sucesso // 'material de aprendizagem' já existe, mas falhou para add // 'javs' javs 'javs' 'com sucesso' // 'existe', mas falhou para add // 'javs' javass '', com sucesso '//', já existe ', mas falhou para add //' javs 'javass' ', e' ', já existentes', mas falhou '. com sucesso // 'qq.jpg' adicionado com sucesso. // Isso é equivalente a executar um comando macro // iniciar a digitalização do diretório raiz: diretório // iniciar a digitalização do 'diretório': javascript // javascript: qq.jpgO acima é o modo de combinação JavaScript introduzido pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!