javascript创建对象之寄生构造函数模式(六)

这种模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象;

但是从表面上看,这个函数有很像典型的构造函数.

 1 function createHuman(name,sex) {
 2             var obj = new Object();
 3             obj.name = name;
 4             obj.sex = sex;
 5             obj.say = function () {
 6                 alert(this.name);
 7             }
 8         }
 9         var man = createHuman("李白", "男");
10         var woman = createHuman("武则天", "女");

除了使用new操作符并把使用的包装函数叫做构造函数之外,这个模式和工厂模式一模一样.

这个模式可以在特殊的情况下,用来为对象创建构造函数.

 1 function printArray() {
 2             var values = new Array();
 3             for (var i = 0; i < arguments.length; i++) {
 4                 values.push(arguments[i]);
 5             }
 6                 values.print = function () {
 7                     return this.join("|");
 8                 }
 9                 return values;
10         }
11         var roles = new printArray("爸爸", "妈妈", "弟弟");
12         alert(roles.print());//爸爸|妈妈|弟弟

这种模式返回的对象与在构造函数外部创建的对象没有什么不同.

所以无法用instanceof操作符来确定对象类型.因为这个缘故,这种模式使用的很少.

 

 

 

 

 

posted @ 2014-03-11 10:30  思思博士  阅读(350)  评论(0编辑  收藏  举报