工厂模式设计模式
工厂模式是软件工程领域一种广为人知的设计模式,而因为在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