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实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
May 27 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
May 03 Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 Javascript
JavaScript里四舍五入函数round用法实例
Apr 06 Javascript
jQuery旋转木马式幻灯片轮播特效
Dec 04 Javascript
JS表格组件神器bootstrap table详解(强化版)
May 26 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
用angular实现多选按钮的全选与反选实例代码
May 23 Javascript
AngularJS 仿微信图片手势缩放的实例
Sep 28 Javascript
微信小程序实现循环动画效果
Jul 16 Javascript
jQuery+ajax实现批量删除功能完整示例
Jun 06 jQuery
vue-next/runtime-core 源码阅读指南详解
Oct 25 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
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
python实现dict版图遍历示例
2014/02/19 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
Python 登录网站详解及实例
2017/04/11 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
浅述python2与python3的简单区别
2018/09/19 Python
python爬虫之遍历单个域名
2019/11/20 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
python隐藏类中属性的3种实现方法
2019/12/19 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
Html5元素及基本语法详解
2016/08/02 HTML / CSS
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
班级读书活动总结
2014/06/30 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
新生开学寄语大全
2015/05/28 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
教师节联欢会主持词
2015/07/04 职场文书
《青山不老》教学反思
2016/02/22 职场文书
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android