zoukankan      html  css  js  c++  java
  • js 获取函数的所有参数名

    具体思路:

      利用Function.toString()方法,获取到函数的源码,再利用正则匹配获取到参数名字。

    实现代码(代码基于ES6):

    // 获取函数的参数名
    function getParameterName(fn) {
        if(typeof fn !== 'object' && typeof fn !== 'function' ) return;
        const COMMENTS = /((//.*$)|(/*[sS]*?*/))/mg;
        const DEFAULT_PARAMS = /=[^,)]+/mg;
        const FAT_ARROWS = /=>.*$/mg;
        let code = fn.prototype ? fn.prototype.constructor.toString() : fn.toString();
        code = code
            .replace(COMMENTS, '')
            .replace(FAT_ARROWS, '')
            .replace(DEFAULT_PARAMS, '');
        let result = code.slice(code.indexOf('(') + 1, code.indexOf(')')).match(/([^s,]+)/g);
        return result === null ? [] :result;
    }

    如有错误,请指正,感谢。

    飞鸟尽,良弓藏
  • 相关阅读:
    Mysql 数据库高级
    Mysql 数据库
    并发编程
    网络编程
    1113
    1112
    P相遇游戏
    中位数
    PETS
    打暴力程序的正确做法
  • 原文地址:https://www.cnblogs.com/shenshangzz/p/8044665.html
Copyright © 2011-2022 走看看