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 相关文章推荐
优化网页之快速的呈现我们的网页
Jun 29 Javascript
jquery中实现标签切换效果的代码
Mar 01 Javascript
jQuery jcrop插件截图使用方法
Nov 20 Javascript
JavaScript实现基于十进制的四舍五入实例
Jul 17 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
Aug 01 Javascript
JavaScript实现经典排序算法之选择排序
Dec 28 Javascript
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
May 08 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
Feb 16 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
May 19 Javascript
Javascript如何递归遍历本地文件夹
Aug 06 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
phpMyadmin 用户权限中英对照
2010/04/02 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
python实现bitmap数据结构详解
2014/02/17 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python使用wxPython实现计算器
2018/01/30 Python
Python Series从0开始索引的方法
2018/11/06 Python
python实现图书借阅系统
2019/02/20 Python
pandas计数 value_counts()的使用
2019/06/24 Python
python制作朋友圈九宫格图片
2019/11/03 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
童装店创业计划书
2014/01/09 职场文书
采购经理岗位职责
2014/02/16 职场文书
小学生元旦感言
2014/02/26 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
查摆剖析材料范文
2014/09/30 职场文书
群众路线个人整改措施
2014/10/24 职场文书
答谢词范文
2015/01/05 职场文书
运动会广播稿200字
2015/08/19 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android