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实现浏览器菜单命令
Sep 05 Javascript
JavaScript 监听textarea中按键事件
Oct 08 Javascript
Web开发之JavaScript
Mar 29 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
Dec 11 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
May 08 Javascript
js浏览器html5表单验证
Oct 17 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
详解Angular CLI + Electron 开发环境搭建
Jul 20 Javascript
Layui数据表格之获取表格中所有的数据方法
Aug 20 Javascript
JavaScript实现简单计算器
Mar 19 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
Aug 03 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
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
PHP缓冲区用法总结
2016/02/14 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
js直接编辑当前cookie的脚本
2008/09/14 Javascript
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
python中time库的实例使用方法
2019/10/31 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
关于毕业的中学校园广播稿
2014/01/26 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
企业宣传工作方案
2014/06/02 职场文书
高三霸气励志标语
2014/06/24 职场文书
在校证明模板
2015/06/17 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
关于车尾的标语大全
2015/08/11 职场文书
学风建设主题班会
2015/08/17 职场文书
销售口号霸气押韵
2015/12/24 职场文书
实验心得体会范文
2016/01/25 职场文书