JS 创建对象方法

  // 混合构造函数/原型方式
  /*创建造函数,设置其属性;在构造函数之外,对其用原型方式赋予方法*/
    function If(name,label){
      this.name = name;
      this.label = label;
    }
    If.prototype.showLabel = function(){
      alert(this.name+",you are so"+this.label);
    }
    var if1 = new If("if","handsome");
    if1.showLabel();


  // 原型方式
  /*创建空构造函数,参数须为空;在构造函数之外,对其用原型方式赋予属性及方法*/
    function Girl(){}
    Girl.prototype.name = "melin";
    Girl.prototype.color = "pinck";
    Girl.prototype.showName = function(){
      alert(this.name);
    };
    var melin = new Girl();
    melin.showName();


  // 构造函数方式
 /*为避免每次创建对象,都重现创建新函数showName()(这意味着每个对象都有自己的showName()版本,事实上,每个对象都共享同一个函数showName),所以,把showName()独立出来,在用Car.showName指针指向showName()*/
  function showName(){
    alert(this.name);
  }
  //创建构造函数
  function Car(name,color){
    this.name = name;
    this.color = color;
    this.showName = showName;
  }
  //实例化一个新对象
  var car1 = new Car("koko","red");
  car1.showName();


  //工厂方式
  /*为避免每次创建对象,都重现创建新函数showName()(这意味着每个对象都有自己的showName()版本,事实上,每个对象都共享同一个函数showName),所以,把showName()独立出来,在用oBj.showName指针指向showName()*/
  var showName = function(){
   alert(this.name)
  }
  /*创建creatO对象*/
  function creatO(nameC,heightC){
    /*new一个对象*/
    var oBj =new Object;
    oBj.name = nameC;
    oBj.height = heightC;
    /*将对象方法指针指向函数showName*/
    oBj.showName = showName;
    /*返回创建的对象oBj,当调用函数creatO时,就创建对象oBj*/
    return oBj;
  }
  /*实例化对象*/
  var oBj1=creatO("mary",160);
  var oBj2=creatO("tom",160);
  /*调用实例对象方法*/
  oBj1.showName();
  oBj2.showName();
原文地址:https://www.cnblogs.com/xmyun/p/5923766.html