在 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 指的是对象实例的引用。
待续


浙公网安备 33010602011771号