javascript原型的疑问

来源:互联网 发布:软件测试培训哪家好 编辑:程序博客网 时间:2024/05/03 04:04

1.原型模型要求一个类型在一个时刻只能有一个原型(而一个实例在一个时刻可以有多个类型)。对于JavaScript来说,这个限制有两层含义,第一是每个具体的JavaScript类型有且仅有一个原型(prototype),在默认的情况下,该原型是一个Object对象(注意不是Object类型)。第二是,这个类型的实例的所有类型,必须是满足原型关系的类型链。

原型模型要求一个类型在一个时刻只能有一个原型的疑问.hmtl

<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><title>原型模型要求一个类型在一个时刻只能有一个原型的疑问</title></head><body><script><!--  function dwn(s)  {    document.write(s + "<br/>");  }  //定义Point2D对象  function Point2D(x,y)  {    this.x = x;    this.y = y;  }  Point2D.prototype.x = 0;  Point2D.prototype.y = 0;    //定义ColorPoint2D对象  function ColorPoint2D(x,y,c)  {    this.x = x;    this.y = y;  }    //ColorPoint2D以Point2D对象为原型  ColorPoint2D.prototype = new Point2D(90,90);  ColorPoint2D.prototype.x = 1;  ColorPoint2D.prototype.y = 1;    //构造一个ColorPoint2D对象  var cp = new ColorPoint2D(10,20,"red");  dwn(cp.x);  //10先查找cp本身的属性  delete cp.x;  dwn(cp.x);  //1 删除后查找上层原型链上的属性  delete ColorPoint2D.prototype.x;  dwn(cp.x);  //0删除后继续查找更上层原型链上的属性  /*  * ColorPoint2D.prototype = new Point2D(90,90);  * ColorPoint2D.prototype.x = 1;  * ColorPoint2D.prototype.y = 1;  *原型模型要求一个类型在一个时刻只能有一个原型,ColorPoint2D的原型是new Point2D(90,90)对象,还是什么  */--></script></body>


原创粉丝点击