论坛首页 Web前端技术论坛

在javascript中如何判断一个方法是new调用还是一般调用

浏览 4380 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-04  
achun 写道
LS最后写的这个,感觉比我写的那个有水准.
this.name VS arguments.callee
呵呵,当然是arguments.callee看上去更美丽了.


不止是看上去更美丽,先来看你的代码:


function Element(){    
   if(this.name==undefined){    
       console.log("new");    
   }else{    
      console.log("normal");    
   }  
}  
 


试试在调用这段代码之前干这事:


var name;
Element(); //出现意外了吧,呵呵


0 请登录后投票
   发表时间:2008-05-04  
this.toString().match(/( \w+)/)[0]
0 请登录后投票
   发表时间:2008-05-04  
笨笨狗 写道
achun 写道
LS最后写的这个,感觉比我写的那个有水准.
this.name VS arguments.callee
呵呵,当然是arguments.callee看上去更美丽了.


不止是看上去更美丽,先来看你的代码:


function Element(){    
   if(this.name==undefined){    
       console.log("new");    
   }else{    
      console.log("normal");    
   }  
}  
 


试试在调用这段代码之前干这事:


var name;
Element(); //出现意外了吧,呵呵



确实,偶这个是错误的.理论上就有问题.
IE不过,FF过了,是FF的BUG?
0 请登录后投票
论坛首页 Web前端技术版

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