JS工厂模式

来源:岁月联盟 编辑:exp 时间:2012-05-05

var page = page || {}; 
page.dom = page.dom || {}; 
//子函数1:处理文本 
page.dom.Text = function () { 
    this.insert = function (where) { 
        var txt = document.createTextNode(this.url); 
        where.appendChild(txt); 
    }; 
}; 
 
//子函数2:处理链接 
page.dom.Link = function () { 
    this.insert = function (where) { 
        var link = document.createElement('a'); 
        link.href = this.url; 
        link.appendChild(document.createTextNode(this.url)); 
        where.appendChild(link); 
    }; 
}; 
 
//子函数3:处理图片 
page.dom.Image = function () { 
    this.insert = function (where) { 
        var im = document.createElement('img'); 
        im.src = this.url; 
        where.appendChild(im); 
    }; 
}; 


工厂方法接口
[javascript]
page.dom.factory = function (type) { 
    return new page.dom[type]; 

调用方式
[javascript]
var o = page.dom.factory('Link'); 
o.url = 'http://www.csdn.com'; 
o.insert(document.body); 



摘自 PainsOnline的专栏
下一篇:JS组合模式