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 相关文章推荐
javascript温习的一些笔记 基础常用知识小结
Jun 22 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
Jan 03 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
Jun 24 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
Jun 17 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
Jun 17 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
Jun 21 Javascript
jquery 抽奖小程序实现代码
Oct 12 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
Jul 16 Javascript
webpack vue项目开发环境局域网访问方法
Mar 20 Javascript
jQuery带控制按钮轮播图插件
Jul 31 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中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php阳历转农历优化版
2016/08/08 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
Javascript模块模式分析
2008/05/16 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
原生js实现轮播图
2017/02/27 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
详解微信UnionID作用
2019/05/15 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
python将视频转换为全字符视频
2019/04/26 Python
基于python实现对文件进行切分行
2020/04/26 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
美国现代家具购物网站:LexMod
2019/01/09 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
校长先进事迹材料
2014/02/01 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
巴黎圣母院观后感
2015/06/10 职场文书
环保建议书作文400字
2015/09/14 职场文书
css height属性中的calc方法详解
2021/06/03 HTML / CSS
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript