【转】js取对象名称



  1. Object.prototype.getName =function(){  
  2.     s =this.constructor.toString();
  3.     if(s.indexOf('function')==-1){  
  4.         returnnull;  
  5.     }else{  
  6.         s = s.replace('function','');  
  7.         var idx = s.indexOf('(');  
  8.         s = s.substring(0, idx);  
  9.         s = s.replace(" ","");  
  10.     }  
  11.     return s;  
  12. }  
  13.  
  14. //调试
  15. functionMyClass(){}
  16. var x =newMyClass();  
  17. var name = x.getName();  
  18. alert(name);

  1. Object
    .prototype.getName =function(){
  2.         var funcNameRegex =/function (.{1,})\(/;
  3.         var results =(funcNameRegex).exec((this).constructor.toString());
  4.         return(results && results.length >1)? results[1]:"";
  5. };
 
  1. function ExampleClass(){
  2. }
  3. ExampleClass.prototype.getName=function(){
  4.  for (var a in window){
  5.       if (window[a]==this){ alert(a.toString());
  6.       };
  7.    }
  8. }
  9. window.instance1=new ExampleClass();
  10. instance1.getName();

   
  1. function getObjectClass(obj) {
  2.     if (typeof obj != "object" || obj === null)
  3.         return false;
  4.     else
  5.         return /(\w+)\(/.exec(obj.constructor.toString())[1];
  6. }
  7. //调试
  8. function MyClass(){}
  9. var x = new MyClass();  
  10. console.log(getObjectClass(x));
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值