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 相关文章推荐
ArrayList类(增强版)
Apr 04 Javascript
javascript学习之闭包分析
Dec 02 Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 Javascript
Javascript核心读书有感之表达式和运算符
Feb 11 Javascript
javascript实现实时输出当前的时间
Apr 27 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 Javascript
使用use注册Vue全局组件和全局指令的方法
Mar 08 Javascript
Vue文件配置全局变量的实例
Sep 06 Javascript
微信小程序功能之全屏滚动效果的实现代码
Nov 22 Javascript
vue中element 的upload组件发送请求给后端操作
Sep 07 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
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中的string类型使用说明
2010/07/27 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
php设计模式之单例模式代码
2016/06/11 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
php-msf源码详解
2017/12/25 PHP
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
vue利用axios来完成数据的交互
2018/03/23 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
ES10的13个新特性示例(小结)
2019/09/23 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
详解python中的装饰器
2018/07/10 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
医院护理人员的自我评价分享
2013/10/04 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
用电申请报告范文
2015/05/18 职场文书
党小组评议意见
2015/06/02 职场文书