js动态调用方法名称示例介绍
先看看js的一个功能。Javascript的eval()函数
定义和用法
eval()函数计算一个字符串和Javascript代码在执行时。
语法
eval(字符串)
参数描述
字符串是必需的,要计算的字符串包含要计算的Javascript表达式或要执行的语句。
返回值
通过计算字符串获得的值(如果有的话)。
解释
这种方法只接受原始字符串作为参数,如果字符串参数不是原始字符串,然后将没有任何改变的回报。因此,请不要将字符串对象的eval()函数作为参数。
如果你试图推翻eval属性或指定另一个属性的eval()方法调用通过这个属性,ECMAscript实现允许你把一evalerror例外。
扔
如果在参数不合法的表达和陈述,该SyntaxError异常抛出。
如果eval()是非法的evalerror抛出异常。
如果一个异常的产生是通过Javascript代码传递给eval(),eval()将传递给调用者的异常。
提示和注释
提示:虽然eval()的功能是非常强大的,它不是在实际使用中多用。
例子
例1
在这种情况下,我们将使用eval()上几串,看看返回结果:
复制代码代码如下所示:
eval(x = 10;y = 20;document.write(X×Y))
Document.write (EVAL (2+2))
变量x=10
document.write(eval(x + 17))
输出:
二百
四
二十七
例2
看看通过eval()返回的结果在其他情况下:
复制代码代码如下所示:
eval(2 + 3) / /返回5
无功myeval = eval; / /将evalerror
Myeval(2 + 3); / /将evalerror
下面的代码可以用来检测评价参数的有效性():
复制代码代码如下所示:
{试
警报(结果+ eval(提示(输入表达式:
}
捕获(异常){
警报(例外);
}
第一种方法是使用JS eval
下面是你写的一个例子。
复制代码代码如下所示:
电话(showmsg );
函数调用(函数名){
eval(,+函数名+());
}
功能showmsg(){
警报();
}
eval可以自动识别字符串拼接成一个方法调用它。
但是滥用也很大,想象一下,有人改变了你调用本地方法名的方式,你可以调用任何方法。
第二种方法主要用作它们自己的定义。
主要的是,第二种方法需要以特定的方式编写。
复制代码代码如下所示:
函数调用(函数名){
showmsgs {showmsg}();
}
无功showmsgs = { showmsg:函数(){
警报();
}
}
电话(showmsg );