函数的几种模式

 

 

一、工厂模式

在函数体内申明一个对象,并且返回

function createPerson(name, age, job){
  var o = new Object();
  o.name = name;
  o.age = age;
  o.job = job;
  o.sayName = function(){
    alert(this.name);
  };
  return o;
}
var person1 = createPerson("Nicholas", 29, "Software Engineer");

  

二、构造函数

直接将属性和方法赋给了this 对象;

构造函数始终都应该以一个大写字母开头,而非构造函数则应该以一个小写字母开头。

function Person(name, age, job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        alert(this.name);
    };
}
var person1 = new Person("Nicholas", 29, "Software Engineer");    

  

三、原型模式(原型对象可以让所有对象实例共享它所包含的属性和方法。)

每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。

    function Person(){
    }

    Person.prototype.name = "Nicholas";
    Person.prototype.age = 29;
    Person.prototype.job = "Software Engineer";
    Person.prototype.sayName = function(){
    alert(this.name);
    };
    var person1 = new Person();
    person1.sayName();

或者

  

  function Person(){
  }
  Person.prototype = {
  name : "Nicholas",
  age : 29,
  job: "Software Engineer",
  sayName : function () {
  alert(this.name);
  }
};

  四、构造+原型模式

function Person(name, age, job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.friends = ["Shelby", "Court"];
}
Person.prototype = {
    constructor : Person,
    sayName : function(){
    alert(this.name);
    }
}

  

posted @ 2015-09-23 14:57  Bigdots  阅读(260)  评论(0编辑  收藏  举报