javascript创建对象——组合使用构造函数和原型模式

转载 2011年01月20日 16:58:00

      构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。结果,每个实例都会有自己的一份实例属性的副本,但同时又共享方法的引用,最大限度地节约内存。另外,这种混合模式还支持向构造函数传递参数;可谓是集两种模式之长。

      function Person(name,age,job){

           this.name = name;

           this.age = age;

           this.job = job;

           this.friends = ["Shelby","Court"];

      }

      Person.protoype = {

           constructor : Person,

           sayName : function(){

               alert(this.name);

           }

     }

 

     var person1 = new Person("Nicholas",29,"Software Engineer");

     var person2 = new Person("Greg",29,"Doctor");

 

     person1.friends.push("Van");

     alert(person1.friends);    //"Shelby,Count,Van"

     alert(person2.friends);   //"Shelby,Count"

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

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

 

    这个例子中,实例属性都是在构造函数中定义的,而由于所有实例共享的属性 constructor 和 方法sayName() 则是在原型中定义的。而修改了person1.friends(向其中添加一个新字节字符),并不会影响到person2.friends,因为它们分别引用了不同的数组。

    这种构造函数与原型混合成的模式,是目前在ECMAScript中使用最广泛、认同度最高的一种创建自定义类型的方法。可以说,这是用来定义用类型的一种默认模式。
                 ,
              

javascript中组合使用构造函数模式和原型模式创建对象

首先来讲一下构造函数创建对象。ECMAScript中的构造函数可用来创建特定类型的对象。请看下面示例了解一下构造函数模式:function Person(name, age, job){ th...

在JS中组合使用构造函数模式和原型模式创建对象

在JS中创建对象有很多种方法,而创建自定义类型的最常见的方式,就是使用组合使用构造函数模式和原型模式创建对象。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性,那么来看看为什么这种方式...
  • stanxl
  • stanxl
  • 2016年04月09日 23:16
  • 472

JS中使用动态原型模式、寄生构造函数模式、稳妥构造函数模式创建对象

承接上一篇,在JS中组合使用构造函数模式与原型模式创建对象今天接着说剩下几种模式: 动态原型模式 寄生构造函数模式(parasitic) 稳妥构造函数模式(durable)动态原型模式动态原型模式把所...
  • stanxl
  • stanxl
  • 2016年04月10日 09:57
  • 672

组合使用构造函数模式和原型模式

创建自定义类型最常见的就是组合使用构造函数模式和原型模式。构造函数模式用于定义实例的属性。而原型模式我们上节了解到,主要是用于定义公用的属性和方法。 首先看一下构造函数模式创建js对象.1. 构造函...

JavaScript创建对象 —— 原型模式

我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象我们叫它原型对象。而这个原型对象的用途是包含可以由特定类型的所有实例共享的属性和方法。它所包含的属性...

深入理解JavaScript的创建对象(构造函数、原型对象、实例)

1.由于JavaScript无法创建类,所以采用函数来封装以特定接口创建对象,采用工厂模式:function createPerson(name, age, job) { var o = ne...
  • code_ja
  • code_ja
  • 2016年06月28日 17:32
  • 194

Professional JS(6.2.4-6.3.1)组合使用构造函数模式&原型模式---原型链

Well,if The Flash were my son,1'd tell him a few things.First off,l'd tell him it's a dangerous worl...

对象的创建:工厂模式/构造函数模式/原型模式 (笔记)

使用Oject构造函数或者对象的字面量创建单个对象的时候会有大量的重复代码。 工厂模式 是一种很常见的设计模式,就是将创建对象的过程进行了一定的抽象。在 JavaScript中无法创建类,所以...

Javascript之创建对象(工厂模式与构造函数模式)

虽然Object构造函数或对象字面量都可以创建单个对象,但是这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量重复的代码。为了解决这个问题,就可以使用工厂模式来创建对象。1、工厂模式 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript创建对象——组合使用构造函数和原型模式
举报原因:
原因补充:

(最多只允许输入30个字)