CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

关于this.constructor的问题

楼主zshaiqi(竹无心)2006-03-03 20:16:56 在 Web 开发 / JavaScript 提问

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);  
  page.area   =   compute_area;  
  var   a   =   page.area(   );         //   a   =   8.5*11   =   93.5  
  alert(a) 问题点数:20、回复次数:9Top

1 楼DeluxWorld(曾经的你)回复于 2006-03-03 20:30:22 得分 0

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

2 楼zhaoxiaoyang(梅雪香@深圳)回复于 2006-03-03 20:46:41 得分 0

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

3 楼zshaiqi(竹无心)回复于 2006-03-03 21:17:38 得分 0

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

4 楼ice_berg16(寻梦的稻草人)回复于 2006-03-03 22:17:54 得分 0

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)Top

5 楼zshaiqi(竹无心)回复于 2006-03-04 09:43:43 得分 0

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

6 楼ice_berg16(寻梦的稻草人)回复于 2006-03-04 13:19:27 得分 0

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

7 楼zshaiqi(竹无心)回复于 2006-03-06 16:57:13 得分 0

一语惊醒梦中人。Top

8 楼KimSoft(革命的小酒天天醉-http://blog.csdn.net/kimsoft/)回复于 2006-03-06 17:08:23 得分 0

呵呵,看看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)  
              //   进行处理(条件为真)。  
  Top

9 楼KimSoft(革命的小酒天天醉-http://blog.csdn.net/kimsoft/)回复于 2006-03-06 17:11:30 得分 0

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

相关问题

  • copy constructor?
  • copy constructor?
  • constructor一题?????
  • 求写copy constructor
  • 奇怪的constructor&copy constructor
  • 什么是assignment constructor?
  • error C2512: 'CMyDialog' : no appropriate default constructor available
  • 关于constructor一个问题??
  • SCJP模拟题 about Default Constructor
  • explicit copy constructor的用处

关键词

  • 函数
  • 属性
  • constructor
  • rectangle
  • 对象
  • area
  • 构造
  • alert
  • myfunc
  • compute

得分解答快速导航

  • 帖主:zshaiqi

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo