js 获取函数的所有参数名

具体思路:

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

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

// 获取函数的参数名
function getParameterName(fn) {
    if(typeof fn !== ‘object‘ && typeof fn !== ‘function‘ ) return;
    const COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/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;
}

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

时间: 2024-10-19 01:21:57

js 获取函数的所有参数名的相关文章

js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法

获取所有参数 function test(){ for(var i=0;i<arguments.length;i++)  document.write(arguments[i]); } 遍历某个对象所有的属性名称和值的方法 <script language="javascript"> var obj = new Object(); obj.myname = "我是对象"; obj.pro2 = "23"; obj.pro3 = 

js js获取url及url参数解析

js获取url及url参数解析 一.获取url: var url=window.location.herf; 二.url参数解析: function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var obj= new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("

js获取URL里的参数

第一种 通过正则获取URL中指定的参数 /** * 获取指定的URL参数值 * URL:http://www.xxx.com/index?name=123 * 参数:param URL参数 * 调用方法:getParam("name") * 返回值:123 * alert(getParam('date')); */ function getParam(name) { var reg = new RegExp("(^|&)" + name + "=(

js获取url中的参数,并保证获取到的参数不乱码

  //网上比较经典的js获取url中的参数的方法  function getQueryString(name) {      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");      var r = window.location.search.substr(1).match(reg);      if ( r != null ){        

浅析js的函数的按值传递参数

js的函数传参的方式是按值传递,正常情况下,改变函数参数的值,并不会对函数外部的变量造成影响.例如: 'use strict';var list = [1, 2, 3]; list.forEach(function(item) { item ++; }); console.log(list); // [ 1, 2, 3 ] 这是因为js的函数在接收参数时,会生成一个副本变量,该副本变量等于参数的值,可以分析js这样运行的: 'use strict'; var list = [1, 2, 3];

js 获取url 中的参数;

用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = window.location.search.substr(1).match(reg);      if(r!=null)ret

js获取url传递的参数

获取URL带参数的JAVASCRIPT客户端解决方案 一.正则分析法.(我较喜欢使用正则)function GetQueryString(name) {var reg = new RegExp(“(^|&)” + name + “=([^&]*)(&|$)”,”i”);var r = window.location.search.substr(1).match(reg);if (r!=null) return (r[2]); return null;}alert(GetQueryS

js获取URL中的参数

js获取URL中的一些参数的意思 location对象 含有当前URL的信息. 属性 href 整个URL字符串. protocol 含有URL第一部分的字符串,如http: host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/ hostname 包含URL中主机名的字符串.如http://www.cenpok.net ; port 包含URL中可能存在的端口号字符串. pathname URL中"/"以后的部分.如~list/inde

swift函数_外部参数名

//1________________ /** *没使用外部参数名的函数 */ func inputScore(name:String,score1:Int,score2:Int) { } /** * 包含外部参数名的函数 */ func inputScore(studentName name:String,mathScore score1:Int,englishScore score2:Int) { } //使用外部参数名的函数 inputScore(studentName:"peter&qu