2007年6月4日

2005年11月24日

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

待续

posted @ 2005-11-24 11:06 swanky 阅读(60) 评论(0) 编辑

2005年11月23日

在用标签浏览的时候存在frame时不小心发现的。请注意它们的不同

1


2


结果

这个bug到不算太严重,也不容易出现,但会影响用户浏览,总感觉页面的下面还有东西

ff版本


还有一个不得不说的问题,ff 1.5 rc中竟然对1.0+的已经写好测试的javascript报错,真是fait。。
posted @ 2005-11-23 11:07 swanky 阅读(182) 评论(0) 编辑