JavaScript中如何获取到对象名?
程序员文章站
2023-11-09 15:44:04
我们经常要判断用户传递进来的对象名是不是合法的,那么我们就需要获取到该对象的对象名,在chrome有提供直接获取到对象名的方法,而在ie中就需要正则或者字符串切割,这么使用正则...
我们经常要判断用户传递进来的对象名是不是合法的,那么我们就需要获取到该对象的对象名,在chrome有提供直接获取到对象名的方法,而在ie中就需要正则或者字符串切割,这么使用正则
//版本1 function getname(fun){ if(typeof fun !== 'function')return; if(fun.name){ return fun.name; }else{ return /function (.+)\(/.exec(fun+'')[1]; } } //版本2 function getname(fun){ if(typeof fun !== 'function') return; return fun.name?fun.name:/function (.+)\(/.exec(fun+'')[1]; } //版本3 function getname(fun){ if(typeof fun!== 'function') return; return fun.name||/function (.+)\(/exec(fun + '')[1]; } //版本4 function getname(fun){ return typeof fun==='function'? undefined: fun.name||/function (.+)\(/.exec(fun + '')[1]; } //调用 function person(){} var ps = new person(); getname(ps.constractor); //通过获取到constractor从而获取到构造函数
//很多框架中比较喜欢用版本4