在 javascript 中既没有类,也没有类的实例,只有特定的对象。当调用 new 操作符时

,构造函数就为对象创建一个所谓的 原型(prototype);也就是说,它创建了一个 模

板(template),从中构建给定类型的对象。

使用原型来创建对象
在编写构造函数时,可以使用原型对象(prototype它本身是所有构造函数的一个属性)

的属性来创建继承属性和共享方法。原型属性和方法将按引用复制给类中的每个对象,

因此它们都具有相同的值。可以在一个对象中更改原型属性的值,新的值将覆盖默认值

,但仅在该实例中有效。属于这个类的其他对象不受此更改的影响。

prototype 是对 对象原形的引用  可以为每个基于对象原形的实例创建方法和属性;请

注意,一旦在原型的实例中重新定义了方法或属性,则在实例再次引用其的时候,则调

用实例的属性或方法而非对象原形引用的方法,也不再影响原型的属性和方法,并只在

当前实例中有效。

this关键字:指当前对象 。this 关键字通常在对象的 构造函数 中使用,用来引用对

象。

构造函数:一种 javascript 函数,具有两个特殊的性质:
由 new 运算符来调用此函数。
通过 this 关键字将新创建对象的地址传递到此函数。


如果上面的话不好理解的话,通过一个例子来说明

 

function Obj(){
  
this.Index=Obj.Count;
  Obj.Count 
++ ;
}
;

Obj.Count 
= 0;
Obj.prototype.ShowIndex 
= function(){
  alert(
this.Index); //这里的this指的是谁?
}
;
var myObj1= new Obj();
var myObj2= new Obj();
myObj1.ShowIndex(); 
//0
myObj2.ShowIndex(); //1

 

总结:在写javascript的“类”的时候,prototype 是针对原型既对象所有实例的属性和

方法;this 指的是对象实例的引用。

待续