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中的property和attribute介绍
Dec 26 Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 Javascript
jquery带动画效果幻灯片特效代码
Aug 27 Javascript
jQuery图片切换动画特效
Nov 02 Javascript
整理一下常见的IE错误
Nov 18 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
JavaScript中String对象的方法介绍
Jan 04 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
Node.js中多进程模块Cluster的介绍与使用
May 27 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 Javascript
element-ui中按需引入的实现
Dec 25 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
Sep 02 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
windows xp下安装pear
2006/12/02 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
js制作提示框插件
2020/12/24 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python的urllib模块显示下载进度示例
2014/01/17 Python
简析Python的闭包和装饰器
2016/02/26 Python
Python3.6正式版新特性预览
2016/12/15 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
环境科学毕业生自荐信
2013/11/21 职场文书
银行出纳岗位职责
2013/11/25 职场文书
医校毕业生自我鉴定
2014/01/25 职场文书
大学生村官演讲稿
2014/04/25 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
高老头读书笔记
2015/06/30 职场文书
校运会新闻稿
2015/07/17 职场文书
2016继续教育研修日志
2015/11/13 职场文书
创业计划书之废品回收
2019/09/26 职场文书
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server