javascript 写类方式之五

  5、用 构造函数+原型 定义一个类;同一构造函数可以定义出多个类型

  

复制代码 代码如下:

  /**

  * $define 写类工具函数之二

  * @param {Object} constructor

  * @param {Object} prototype

  */

  function $define(constructor,prototype) {

  var c = constructor || function(){};

  var p = prototype || {};

  return function() {

  for(var atr in p)

  arguments.callee.prototype[atr] = p[atr];

  c.apply(this,arguments);

  }

  }

  与第四种方式类似,仍然用构造函数,原型对象,定义两个类。

  

复制代码 代码如下:

  //构造函数

  function Person(name) {

  this.name = name;

  }

  //原型对象

  var proto = {

  getName : function(){return this.name},

  setName : function(name){this.name = name;}

  }

  //定义两个类

  var Man = $define(Person,proto);

  var Woman = $define(Person,proto);

  console.log(Man == Woman);//false,同一个构造函数(Person)定义不同的类