javascript 获取函数形参个数

分享下javascript获取函数形参个数的方法。

/**
* 获取函数的形参个数
* @param {Function} func [要获取的函数]
* @return {*} [形参的数组或undefind]
* @site www.jbxue.com
*/
function getFuncParameters(func) {
if (typeof func == ‘function‘) {
var mathes = /[^(]+\(([^)]*)?\)/gm.exec(Function.prototype.toString.call(func));
if (mathes[1]) {
var args = mathes[1].replace(/[^,\w]*/g, ‘‘).split(‘,‘);
return args;
}
}
}

javascript 获取函数形参个数

时间: 2024-10-29 19:11:22

javascript 获取函数形参个数的相关文章

从获取函数形参谈toString用法

问题 如何获取一个函数形参?我们都知道通过arguments可以获取运行时的实参值,但是形参值怎么获取,如果我们对toString的用法了解,这个问题就好解答了 toString Function.prototype.toString里有一句话说,在一个函数上直接调用toString方法,会以字符串形式返回这个函数的源码.这里有个重要信息,通过调用toString() 方法可以反编译解析出函数源码,多么强大简单的功能. // 撸代码 function tq(a, b, c) {} tq.toSt

[ActionScript 3.0] AS3 获取函数参数个数

1 function createFunction(param1:String,param2:String,param3:int=0):void 2 { 3 trace(arguments.length);//arguments.length表示实参个数 4 } 5 trace(arguments.length);//输出0,说明arguments.length只在函数体内有效 6 trace(createFunction.length);//输出3,说明createFunction.lengt

JavaScript进阶系列04,函数参数个数不确定情况下的解决方案

本篇主要体验函数参数个数不确定情况下的一个解决方案.先来看一段使用函数作为参数进行计算的实例. var calculate = function(x, y, fn) { return fn(x, y); }; var sum = function(x, y) { return x + y; }; var diff = function(x, y) { return x - y; }; var sumResult = calculate(1, 2, sum), diffResult = calcu

调用函数时传递的实参个数arguments.length; ,函数定义时的形参个数sum.length

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>范例6-4</title>

JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法

函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留言告诉我, 谢谢).因为调用对象是作用域链的一部分,所以在函数体内可以把这个对象属性作为变量来访问. 调用对象的属性包括:用var声明的局部变量,函数形参,还有一种特殊的属性arguments 函数的实际参数:实际参数对象 arguments对象,用来引用实际参数对象.函数的arguments对象并

JavaScript中函数的形参和实参的实现原理剖析

我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) { this.x = a; console.log(a); } one(1); </script> 我们传递的数字只有一个1,但是形参那里有abc三个.这分明对不上啊不是吗? 这个时候如果我们查看b,c的话会显示undefined.ps:比如console.log(b). 当然啦,本来就没有这两

C++ 中获取 可变形参函数中的参数

#include <iostream> #include <stdarg.h> using namespace std; int ArgFunc(const char * str, ...) { va_list ap; // 定义参数列表变量 va_start(ap, str); // 确定参数位置,表明从 str 开始获取参数 // 开始获取参数 var_arg(ap, 数据类型) 返回获取的值 cout<<va_arg(ap, int)<<endl; c

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 = 

C++中,如果我们想要获取不确定个数的参数进入函数,就可以使用va_list类型的变量

C++中如果我们想要获取不确定个数的参数进入函数,可以使用下面这种方法: 1 1 #include <cstdarg> //这里我们添加进来所需要的类库<csrdarg> 2 2 3 3 // first argument is int count of remaining args 4 4 // ... remaining args are doubles for average 5 5 6 6 double average(const int count, ...) 7 7 {