zoukankan      html  css  js  c++  java
  • javascript中如何获取对象名

    javascript中如何获取对象名

    一、总结

    一句话总结:将对象传入参数,看参数是否为函数(js中的对象和函数是一个意思么(函数肯定是对象)),对象参数.name属性即可获得

    //版本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从而获取到构造函数

    二、JavaScript中获取到对象名

    我们经常要判断用户传递进来的对象名是不是合法的,那么我们就需要获取到该对象的对象名,在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

     
    参考:JavaScript中获取到对象名 - CSDN博客
    https://blog.csdn.net/qq_25956141/article/details/79156709
     
     
     
     
     
  • 相关阅读:
    好的Qt学习资料
    QT QMap介绍与使用
    Qt缺少调试器
    vs2012+Qt5.3.1环境添加新的ui界面的方法
    QT定时器的使用
    Qt中forward declaration of struct Ui::xxx的解决
    linux-svn命令
    如何编写Windows服务
    为你的爬虫提提速?
    Python爬虫的N种姿势
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9651601.html
Copyright © 2011-2022 走看看