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 相关文章推荐
图片在浏览器中底部对齐 解决方法之一
Nov 30 Javascript
用javascript将数据导入Excel示例代码
Sep 10 Javascript
在HTML代码中使用JavaScript代码的例子
Oct 16 Javascript
jQuery插件制作之参数用法实例分析
Jun 01 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
JS实现给json数组动态赋值的方法示例
Mar 19 Javascript
浅谈JavaScript中的属性:如何遍历属性
Sep 14 Javascript
Windows下Node.js安装及环境配置方法
Sep 18 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
Dec 11 Javascript
js实现图片无缝循环轮播
Oct 28 Javascript
vue中的 $slot 获取插槽的节点实例
Nov 12 Javascript
JavaScript中while循环的基础使用教程
Aug 11 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
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
PHP查询快递信息的方法
2015/03/07 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
python实现12306火车票查询器
2017/04/20 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
Shell脚本如何向终端输出信息
2014/04/25 面试题
单位人事专员介绍信
2014/01/11 职场文书
小学校园活动策划
2014/01/30 职场文书
优秀学生获奖感言
2014/02/15 职场文书
求职信模板
2014/05/23 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
结对共建协议书
2014/08/20 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS