JavaScript 创建对象

JavaScript创建对象

工厂模式

工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程。
考虑到在ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节。
  function createPerson(name, age, job){
      var o = new Object();
      o.name = name;
      o.age = age;
      o.job = job;
      o.sayName = function(){
           alert(this.name);
      }
 }
 var person1 = createPerson("nichilas", 29, "software Engineer");
 var person2 = createPerson("Greg",27,"Doctor");

构造函数模式

        ECMAScript中的构造函数可以用来创建特定类型的对象。像Object和Array这样的原生构造函数,在运行时会自动出现在执行环境中。此外,也可以创建自定义的构造函数,从而定义自定义对象类型的属性和方法。
例子:
function Person(name, age, job){
  this.name = name;
  this.age = age;
  this.job = job;
  this.sayName = function(){
    alert(this.name);
  }
}
var person1 = new Person("nichilas", 29, "software Engineer");
var person2 = new Person("Greg",27,"Doctor");
在这个例子中,Person()函数取代了createPerson()函数。
他们之间的不同:
没有显示的创建对象;
直接将属性和方法赋给了this对象;
没有return语句

原型模式

使用构造函数的prtotype属性来指定那些应该共享的属性和方法。组合使用构造函数模式和原型模式时,使用构造函数定义实例属性,而使用原型定义共享的属性和方法。

猜你喜欢

转载自blog.csdn.net/swallow_y/article/details/79417382