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 相关文章推荐
jQuery 插件仿百度搜索框智能提示(带Value值)
Jan 22 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
jQuery实现可收缩展开的级联菜单实例代码
Nov 27 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
May 06 Javascript
js 加密压缩出现bug解决方案
Nov 25 Javascript
jQuery基础语法实例入门
Dec 23 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 Javascript
jQuery 生成svg矢量二维码
Aug 09 Javascript
微信小程序(应用号)简单实例应用及实例详解
Sep 26 Javascript
BootStrap树状图显示功能
Nov 24 Javascript
微信小程序如何再次获取用户授权的方法
May 10 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 adodb分页实现代码
2009/03/19 PHP
php include和require的区别深入解析
2013/06/17 PHP
PHP编程风格规范分享
2014/01/15 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
python+mysql实现教务管理系统
2019/02/20 Python
python 列表推导式使用详解
2019/08/29 Python
python 错误处理 assert详解
2020/04/20 Python
Python如何给函数库增加日志功能
2020/08/04 Python
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
2013年高中生自我评价
2013/10/23 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
婚前财产协议书范本
2014/10/19 职场文书
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript