有没有自动找出 JS 的匿名函数并且改成命名函数的再塞回去的工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
zzNucker
V2EX    Javascript

有没有自动找出 JS 的匿名函数并且改成命名函数的再塞回去的工具

  •  
  •   zzNucker 2014 年 3 月 24 日 5010 次点击
    这是一个创建于 4362 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨天想了一下感觉匿名函数确实在调试,优化这些情况下很麻烦很难定位问题,如果有这么个工具,可以在测试的时候避免匿名函数的困扰,较为准确地定位和解决问题。 感觉用js Parser之类的工具应该能找出匿名函数,可能提取出来改造成命名函数的过程比较困难。不知道有没有人进行过这种工具的研究什么的,昨天在google上搜了一下没找到想要的东西。
    9 条回复    1970-01-01 08:00:00 +08:00
    miniwade514
        1
    miniwade514  
       2014 年 3 月 24 日 via Android
    修改后的函数名要有正确的语义,不然没什么帮助。程序能做到这样感觉很牛叉
    zzNucker
        2
    zzNucker  
    OP
       2014 年 3 月 24 日
    @miniwade514 我觉得不一定要有很清楚的语义,毕竟我设想里主要为了测试和优化的定位。部署的时候还是用原来的脚本。
    krazy
        3
    krazy  
       2014 年 3 月 24 日   1
    dorentus
        4
    dorentus  
       2014 年 3 月 24 日 via iPad
    如果只是为了调试方便的话,这么写就可以了:

    elm.on('click', function awsome_click_handler(e) { /* ... */ })
    jsonline
        5
    jsonline  
       2014 年 3 月 24 日 via Android
    调试请用log,用debugger是很浪费时间的
    zzNucker
        6
    zzNucker  
    OP
       2014 年 3 月 24 日
    @jsonline - - 当然不是普通调试啦, 是那种比较复杂的性能分析之类的。
    zzNucker
        7
    zzNucker  
    OP
       2014 年 3 月 24 日
    @dorentus 嗯,我知道这样可以,我的意思是有没有可能有这样一种工具,帮助现有的代码得到这种效果。
    zzNucker
        8
    zzNucker  
    OP
       2014 年 3 月 24 日
    @krazy falafel这个node库好像挺有意思的。 我还在github上翻到了另一个rename的repo,也是分析ast搞的。
    sxd
        9
    sxd  
       2014 年 3 月 25 日
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4981 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 05:39 PVG 13:39 LAX 21:39 JFK 00:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86