在jScriptAPI文档中的prototype属性是用来返回对象类型原型的引用。对于这句话,应该先要理解js中对象,和js中的原型。

   在js中一切皆为对象,而原型就相当于类。有了这个初步理解,下面就开始谈谈这个内部细节。既然原型跟类从某方面来讲有一定的类似性,那么我们研究类的时候有构造函数,属性,方法,当然还有继承之类,这个我们就先不研究。

     prototype中的构造器是constructor。那么这个construtor在js中充当什么角色呢?在jsAPI如是说:是用来创建对象的函数。由此可见,既然js中一切皆为对象,而对象又是由construtor构造器所创建的,那么我们也由此可以得出所有的对象都有构造器即construtor这个属性。这个属性又属于prototype属性的,则所有的对象也都具有原型。在js中这样可以通过new方式创建对象,eg:SuperMan.prototype = new Man();如果有通过new的话,那么这个对象的construtor就是调用该引用对象,如果没有则调用js中的超类对象Function。这个类就相当与java中的Object类一样。

    prototype怎样为绑定它的对象赋值属性呢,想想类怎样定义属性的,它就怎样定义.下面通过一个例子来说明这个eg:Man.prototype.smoke = "smoking"。从这个例子可以很清楚的知道,一个男人具备抽烟,只要你一创建一个男人出来,他就应当有抽烟这个属性。这个有点类此与类中的静态成员。prototype中的方法就不列出来了,这个跟属性没什么两样。

   对象的原型也可以改变的,只要重新定义了prototype属性后,上面所定义的原型,将会失去效果,这样就完成了对象的原型的改变。当然要注意,对象的原型改变了,构造器也随之改变了。