惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
V
V2EX
B
Blog RSS Feed
有赞技术团队
有赞技术团队
博客园 - Franky
美团技术团队
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
云风的 BLOG
云风的 BLOG
L
LangChain Blog
GbyAI
GbyAI
The Cloudflare Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
博客园 - 【当耐特】
The Register - Security
The Register - Security
大猫的无限游戏
大猫的无限游戏
D
Docker
Vercel News
Vercel News
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
N
Netflix TechBlog - Medium
博客园_首页
A
About on SuperTechFans
J
Java Code Geeks
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
Recent Announcements
Recent Announcements
G
Google Developers Blog
小众软件
小众软件
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
F
Full Disclosure
Jina AI
Jina AI
H
Help Net Security

博客园 - vboy

jQuery1.3.2 升级到 1.4.4 - vboy 过去的2010 2010北京马拉松 十年 2009北京国际马拉松,不一样的马拉松 2008.10.19日,马拉松胜利完成! 2008北京马拉松,我来了! 通过xmlhttp传送XML格式数据(VB.net) 春思 跑步三个月总结(2007-01-16) 观《垂直极限(Vertical Limit)》有感 与阿尔班鹰一起重生 展望2007 回顾2006 观《当幸福来敲门》有感 健身长跑好处多(转载) 跑步两个月总结(2006-12-16) 俞敏洪:和青年学生分享五句话[转自新东方] 坚持就是胜利--看《我为肥狂》有感
使用eval导致Google Closure Compiler压缩代码后运行出错的解决办法 - vboy
vboy · 2009-12-09 · via 博客园 - vboy

最近在搞一些javascript的东西,由于系统完全是基于配置文件的,所以一些javascript的函数名或者函数代码直接写在了配置文件当中。

    //配置好的方法名
    var funcName="func1";
    
//写好的方法
    function func1(s){
        alert(s);
    }

也可能是配置为:

    var funcName="function(s){alert(s);}";

在调用的地方

    var str="Hello!";
    eval(
"("+funcName+")(str)");

正常调用没有问题,如果使用Compiler压缩后,因为str变量已经被改名,所以eval会出错。

改用:

    //var f=eval("(" + funcName + ")");
    var f=eval("(function() {return (" + funcName + ");})()");
    f.call(
this,str);

解决问题。

在chrome/firefox/opera下,直接用 eval("(" + funcName + ")") 可返回function对象,而IE下会返回 undefined 。

用 eval("(function() {return (" + funcName + ");})()"); 解决兼容性问题。