var ymPrompt = {};var initFn = ['getPage', 'resizeWin', 'doHandler', 'close', 'setDefaultCfg','show'], _initFn = {}, t;
while(t=initFn.shift())
{
ymPrompt[t] = eval('0,function(){_initFn.'+t+'=arguments}');
}你们能看懂该段代码中的 eval()函数嘛? 该函数返回的是什么?
解决方案 »
- EXT问题, 高手速进,求指教。。。
- 求助!一个给指定标签加label的问题
- 用什么方法将已经选中的记录的行号i传给arr数组保存 ?
- 中文/拼音 下拉选择款框
- 如何自动保存这样一个页面的图片到本地
- 请教动态向select对象中添加option对象问题
- 关于窗口打开的两个问题.
- 难----在客户端图片显示控制(放大、缩小、移动)的问题
- 如何用js实现下列要求,超简单的
- 隐藏左侧菜单栏时,右侧框架里的网页在谷歌浏览器里会向下移动一个屏幕的距离
- JavaScript中很多时候局部变量和全局变量总弄错,一不小心就报未定义和缺少对象的错误!请大虾们解释一下JavaScript中定义局部变量和全局变量的概念和例子!
- 数字+字母+汉字混合验证码程序
var ymPrompt = {};var initFn = ['getPage', 'resizeWin', 'doHandler', 'close', 'setDefaultCfg','show'], _initFn = {}, t;
while(t=initFn.shift())
{
ymPrompt[t] = eval('0,function(){_initFn.'+t+'=arguments}'); //对ymPrompt进行赋值
}
for( method in ymPrompt){
alert('ymPrompt.'+method+'='+ymPrompt[method]); //查看赋值结果。
}
ymPrompt.getPage('a','b'); //调用ymPrompt的getPage()方法,实际上就是对_initFn.getPage属性进行赋值。
alert((_initFn.getPage)[0]);
alert((_initFn.getPage)[1]);
0,应该是个标示符,表示一个参数
后面的function()估计是将这个结果传给0,
然后eval中使用这个结果
把function()是将这个结果传给0?哥们,你说的这个是什么意思啊,我还是听不懂
alert(a)//弹出0
下面的代码 在ff下能弹出 ie不行 解释的是eval的第2个参数 转自http://www.javaeye.com/topic/210416
var ttt={
aaa:123,
bbb:234
}
with(ttt)
{
ccc=aaa;
}
//eval("ccc=aaa",ttt)
alert(ccc)
var ttt={
aaa:123,
bbb:234
}
eval("ccc=aaa",ttt)
alert(ccc) 下面这个应该是对的
var a=eval('0,3')//等同于var a=(0,3)
alert(a)//弹出3
首先
var a=eval('function(){return 33}')//ie下不行 ,ff下相当于var a=function(){return 33}
alert(a)//ie下弹出undefined ff下能正确弹出function(){return 33} 但是下面这样 ie下也行
var a=eval('0,function(){return 33}')//
alert(a)//你会发现ie,ff下都能正确弹出function(){return 33} 所以 加一个0, 是为了兼容ie为什么不直接用 ymPrompt[t] = function(){_initFn.t=arguments};
而要用 ymPrompt[t] = eval('0,function(){_initFn.'+t+'=arguments}');呢?
看这个帖子http://topic.csdn.net/u/20090313/22/37717fa8-74bf-4317-a13e-b4e284d4e6a2.html
并注意6楼和8楼的发言
http://blog.csdn.net/aimingoo/archive/2008/07/22/2692512.aspx