工廠模式設計模式
工廠模式是軟件工程領域一種廣爲人知的設計模式,而因爲在ECMAScript中沒法建立類,所以用函數封裝以特定接口建立對象。其實現方法很是簡單,也就是在函數內建立一個對象,給對象賦予屬性及方法再將對象返回便可。函數
1 function createBlog(name, url) { 2 var o = new Object(); 3 o.name = name; 4 o.url = url; 5 o.sayUrl= function() { 6 alert(this.url); 7 } 8 return o; 9 } 10 11 var blog1 = createBlog('wuyuchang', 'http://www.jb51.net/');
能夠看到工廠模式的實現方法很是簡單,解決了建立多個類似對象的問題,可是工廠模式卻無從識別對象的類型,由於所有都是Object,不像Date、Array等,所以出現了構造函數模式。this
構造函數模式url
ECMAScript中構造函數能夠建立特定類型的對象,相似於Array、Date等原生JS的對象。其實現方法以下:spa
1 function Blog(name, url) { 2 this.name = name; 3 this.url = url; 4 this.alertUrl = function() { 5 alert(this.url); 6 } 7 } 8 var blog = new Blog('wuyuchang', 'http://www.jb51.net/'); 9 //即爲Blog的實例,也爲Object的實例 10 console.log(blog instanceof Blog); // true 11 console.log(blog instanceof Object); // true