面向对象 ( OO ) 的程序设计——创建对象

2018-06-24 00:23:52来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

本文地址:http://www.cnblogs.com/veinyin/p/7608000.html 

 

为了避免大量重复代码产生,可采用以下方法创建对象

1 工厂模式

 1 function createPerson(name,age,job){
 2     var o = new Object();
 3     o.name = name;
 4     o.age = age;
 5     o.job = job;
 6     return o;
 7 }
 8 
 9 var person1 = createPerson("Bob",23,"Doctor");
10 var person2 = createPerson("Lily",21,"Student");

其实就是一个函数,在函数里面创建一个对象,给对象赋上传过来的值,再把这个对象返回给调用的地方。

 

2 构造函数模式

1 function People(name, age, job){
2     this.name = name;
3     this.age = age;
4     this.job = job;
5 }
6 
7 var people1 = new People("Bob",23,"Doctor");
8 var people2 = new People("Lily",21,"Student");  

构造函数大家都知道,C++已经学过就不多说了。

 

3 原型模式

 1 function Person(){}
 2 
 3 Person.prototype = {
 4     name: "Bob",
 5     age: 23,
 6     job: "Doctor"
 7 };
 8 
 9 var people1 = new Person();
10 
11 people1.name = "Lily";
12 people1.age = 21;
13 people1.job = "Student";

这样把属性也给了 prototype,不太推荐。

4 寄生构造函数模式

代码就不贴了,工厂模式的定义,但是实例化方法类似于构造函数,使用 new 关键字

  • 实际创建自定义对象时会构造函数与原型模式混合使用,构造函数定义实例属性,原型模式定义方法和共享的属性,这样可以最大限度地节约内存

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:内置对象

下一篇:js特效遮罩层(弹出层)