浏览 1995 次
锁定老帖子 主题:js的prototype理解
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-15
最后修改:2009-05-19
<script> function Point(x,y) { var position ; //用var声明的属性是private的 this.x = x; //用this.属性和方法是public的 this.y = y; } var p1 = new Point(1,2); var p2 = new Point(3,4); Point.prototype.z = 0; //动态为Point的原型添加了属性 ,这个是类方法,相当于static alert(p1.z); alert(p2.z); //同时作用于Point类型创建的所有对象 alert(p2. position )//undifined Point.prototype.a = new Point(); //继承链 </script> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-15
纠正你一个错误,Point.prototype.z这个可不是类方法,首先它是个属性,其次它也不是静态。如果想写成静态,应该为Point.z。Point.prototype.z表示如果创建一个Point类型的对象,那么这个对象会拥有一个z属性如p2.z,但是p1.z和p2.z没有任何联系~也就是说这个属性是基于对象的,而不是基于类的,自然不是静态的。
|
|
返回顶楼 | |
发表时间:2009-05-19
.z,但是p1.z和p2.z没有任何联系~也就是说这个属性是基于对象的,而不是基于类的,自然不是静态的。
prothi 写道 纠正你一个错误,Point.prototype.z这个可不是类方法,首先它是个属性,其次它也不是静态。如果想写成静态,应该为Point.z。Point.prototype.z表示如果创建一个Point类型的对象,那么这个对象会拥有一个z属性如p2.z,但是p1.z和p2.z没有任何联系~也就是说这个属性是基于对象的,而不是基于类的,自然不是静态的。 谢谢你的指正 |
|
返回顶楼 | |