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
     
     
     
     
     
  • 相关阅读:
    POJ 1981 Circle and Points (扫描线)
    UVA 1514 Piece it together (二分图匹配)
    CodeForces 140D New Year Contest
    HDU 4863 Centroid of a Tree
    HDU 4865 Peter's Hobby
    HDU 4870 Rating
    HDU 4864 Task
    CodeForces 766E Mahmoud and a xor trip
    CodeForces 766D Mahmoud and a Dictionary
    CodeForces 767D Cartons of milk
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9651601.html
Copyright © 2011-2022 走看看