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
     
     
     
     
     
  • 相关阅读:
    过滤textarea
    vue引用jquery
    vue_ajax插件Axios
    VeeValidate
    mongodb
    WEBGL实现--three.js笔记整理
    My SQLworkbench问题总结
    vue遇到的问题
    MYSQL使用笔记
    vue笔记
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9651601.html
Copyright © 2011-2022 走看看