js创建对象的三种方式

不使用类创造对象

1.工厂模式

    function Create(name,age) {
      var o = new Object();
      o.name = name;
      o.age = age;
      o.sayName = function () {
        alert(this.name);
      }
      retrun o;
    }  

解决了创建多个相似对象的问题,没有解决对象识别问题。alert(test1 instanceof Object); //true

2.构造函数模式

    function Create(name,age) {
      this.name = name;
      this.age = age;
      this.sayName = function () {
        alert(this.name);
      }
    }  

缺点是它的成员无法复用,包括函数。(可以将sayName单独拎出来,然后this.sayName=函数)

3.原型模式

    function Create(){}
    Create.prototype={
      name:'John',
      sayName:function(){
        alert(this.name);
      }
    }

你可能感兴趣的:(js创建对象的三种方式)