你的位置:首页 > Java教程

[Java教程]JS 创建对象的7种方法(一)


1.工厂模式(Factory)

 1 function createPerson(name, age, title){ 2   var o = new Object(); 3   o.name = name; 4   o,age = age; 5   o.title = title; 6   o.sayName = function(){ 7     alert(this.name); 8   } 9   return o;10 }  11 12 var person1 = createPerson("Greg", 30, "Doctor");13 var person2 = createPerson("Lisa", 20, "Teacher"); 

 工厂模式不能识别对象的类型。

2.构造函数模式(Constructor)

 1 function Person(name, age, job){ 2   this.name = name; 3   this.age = age; 4   this.job = job; 5   this.sayName = function(){ 6     alert(this.name); 7   } 8 } 9 var person1 = new Person("Nicholas", 18, "Software Engineer");10 var person2 = new Person("Greg", 27, "Doctor");  

 按照惯例,构造函数始终都应以一个大写字母开头。

 要创建一个Person的新实例,必须使用new操作符。

 person1和person2分别保存着Person的一个不同的实例,这两个对象都有一个constructor属性,该属性指向Person:

alert(person1.constructor == Person) //truealert(person2.constructor == Person) //true

 构造函数的问题: 构造函数中的所有方法都要在每个实例上重新创建一遍。

alert(person1.sayName == person2.sayName);  //false