论坛首页 Web前端技术论坛

js的prototype理解

浏览 1995 次
精华帖 (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>

   发表时间:2009-05-15  
纠正你一个错误,Point.prototype.z这个可不是类方法,首先它是个属性,其次它也不是静态。如果想写成静态,应该为Point.z。Point.prototype.z表示如果创建一个Point类型的对象,那么这个对象会拥有一个z属性如p2.z,但是p1.z和p2.z没有任何联系~也就是说这个属性是基于对象的,而不是基于类的,自然不是静态的。
0 请登录后投票
   发表时间: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没有任何联系~也就是说这个属性是基于对象的,而不是基于类的,自然不是静态的。


谢谢你的指正
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics