JS动态调用方法名示例介绍


Posted in Javascript onDecember 18, 2013

先看看JS的一个函数

JavaScript eval() 函数
定义和用法

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
语法

eval(string)

参数 描述

string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

返回值

通过计算 string 得到的值(如果有的话)。

说明

该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。

如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。

抛出

如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。

如果非法调用 eval(),则抛出 EvalError 异常。

如果传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。

提示和注释

提示:虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。

实例

例子 1

在本例中,我们将在几个字符串上运用 eval(),并看看返回的结果:

<script type="text/javascript"> eval("x=10;y=20;document.write(x*y)") 
document.write(eval("2+2")) 
var x=10 
document.write(eval(x+17)) 
</script>

输出:

200
4
27

例子 2

看一下在其他情况中,eval() 返回的结果:

eval("2+3") // 返回 5 
var myeval = eval; // 可能会抛出 EvalError 异常 
myeval("2+3"); // 可能会抛出 EvalError 异常

可以使用下面这段代码来检测 eval() 的参数是否合法:
try { 
alert("Result:" + eval(prompt("Enter an expression:",""))); 
} catch(exception) { 
alert(exception); 
}

第一种方法就是使用js里面的eval

下面是自己写的例子

call("showmsg"); function call(functionName){ 
eval("this."+functionName+"()"); 
} 
function showmsg(){ 
alert("success"); 
}

eval能将你拼接的字符串自动识别为方法,并调用。

但弊端也是很大的,想象一下,某个人改你调用地方的方法名,便能调用你的任意方法。

第二种方法主要用作自己定义的方法

主要是第二种方法需要特定的方式去写

function call(functionName) { 
showmsgs["showmsg"](); 
} var showmsgs = { showmsg: function () { 
alert("success"); 
} 
} 
call("showmsg");
Javascript 相关文章推荐
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
Dec 02 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
jquery获取子节点和父节点的示例代码
Sep 10 Javascript
javascript学习指南之回调问题
Apr 23 Javascript
基于javascript实现的购物商城商品倒计时实例
Dec 11 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
基于JavaScript实现幸运抽奖页面
Jul 05 Javascript
vue 中的keep-alive实例代码
Jul 20 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
vue点击页面空白处实现保存功能
Nov 06 Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 Javascript
vue实现公共方法抽离
Jul 31 Javascript
javascript页面动态显示时间变化示例代码
Dec 18 #Javascript
页面实时更新时间的JS实例代码
Dec 18 #Javascript
带左右箭头图片轮播的JS代码
Dec 18 #Javascript
用js代码改变单选框选中状态的简单实例
Dec 18 #Javascript
浅析document.ready和window.onload的区别讲解
Dec 18 #Javascript
浅谈Javascript 执行顺序
Dec 18 #Javascript
Javascript浅谈之引用类型
Dec 18 #Javascript
You might like
URL Rewrite的设置方法
2007/01/02 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
python中的yield使用方法
2014/02/11 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
使用tensorflow实现线性svm
2018/09/07 Python
Python 判断奇数偶数的方法
2018/12/20 Python
基于Python的PIL库学习详解
2019/05/10 Python
Python测试线程应用程序过程解析
2019/12/31 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
JPA面试常见问题
2016/11/14 面试题
大学生毕业求职简历的自我评价
2013/10/24 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
小学教师工作总结2015
2015/04/07 职场文书
费城故事观后感
2015/06/10 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
Python使用DFA算法过滤内容敏感词
2022/04/22 Python