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
     
     
     
     
     
  • 相关阅读:
    mysql主见自增,新增对象之后如何获取自增列
    mysql 常用语法
    加载maven中没有jar的命令
    设计的数据库中有关键字时,要 `` 符号不是单引号,和~一个键
    RequestMapping manager问题
    对页面所有TextBox进行操作
    正则简单检测字符有效性
    同时兼容IE和Firefox的事件(Event)
    各种浏览器的可见性
    页面加载Loading(.net)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9651601.html
Copyright © 2011-2022 走看看