个人理解:
var page = new Rectangle(8.5, 11);
//构造一个Rectangle赋给page变量(对象)
而compute_area是page的一个属性,这样,this.constructor
就是构造page对象的函数

解决方案 »

  1.   

    Date
    PROPERTIESconstructor Property
    This property returns a reference to the function that created the Date object's prototype.Syntax: object.constructor
      

  2.   

    可是第一个alert出来的确是 Rectangle()。所以不是很明白。
      

  3.   

    function Rectangle(a,b)
    {
    this.width=a;
    this.height=b
    }
    function compute_area( )
    {alert(this.constructor)
    alert(this.constructor=="Rectangle")//问题就在这里,这个this.constructor倒底是什么呢。为什么?return this.width * this.height;
    }
    var page = new Rectangle(8.5, 11); //创建一个Rectangle对象
    //给该对象增加一个新方法compute_area,方法中的this指page对象
    //所以this.constructor指page的构造函数,即Rectangle
    page.area = compute_area;  
    var a = page.area( ); // a = 8.5*11 = 93.5  //执行page对象的方法,
    alert(a)
      

  4.   

    楼上的,我也是这么想的,可是第二个alert的值怎么是false,应该是true吧。所以我才纳闷呢。
      

  5.   

    可是第二个alert的值怎么是false,应该是true吧。所以我才纳闷呢。
    -------------
    应该是
    alert(this.constructor==Rectangle)
    才对,
    this.constructor的类型是function,你和字符串比较当然是false了
      

  6.   

    呵呵,看看constructor 的用法就知道了。constructor 属性
    表示创建对象的函数。 object.constructor必需的 object是对象或函数的名称。 说明
    constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。 例如: x = new String("Hi");
    if (x.constructor == String)
          // 进行处理(条件为真)。
    或 function MyFunc {
       // 函数体。
    }y = new MyFunc;
    if (y.constructor == MyFunc)
          // 进行处理(条件为真)。
      

  7.   

    关键是理解 compute_area 里的 this 指的是什么。