为什么 js 的代码看起来特别复杂?

2015-08-02 13:24:38 +08:00
 colorsand

http://i.imgur.com/hoDObY5.png

5346 次点击
所在节点    JavaScript
22 条回复
colorsand
2015-08-02 13:35:19 +08:00
edire
2015-08-02 13:36:07 +08:00
这是加密压缩过的js代码。
sox
2015-08-02 13:36:22 +08:00
这是人写的代码?
banri
2015-08-02 13:38:00 +08:00
丑化过了
an168bang521
2015-08-02 13:41:53 +08:00
这个是压缩过的代码,写绑定事件之类的功能;你可以在d前面敲一个回车,看起来就更清爽了;d.prototype.XXXX是在d的原型上写方法;里面的this关键字,是指谁执行这个方法,this就指谁,没有执行前只是一个空指针;其实你只要理清思路,然后看这个代码就并不复杂的了;你可以试着模仿jQuery写自己的类库;最多写几十个方法,然后找个压缩工具,压缩自己的类库;然后你再解读你自己的类库;你会非常容易就能看懂自己压缩后的类库(自己写的,自己当然能看懂);再然后你回头看下这段代码,你会发现,就那么点东西;你发的这个图应该是在控制台,点展开后截图下来的,你可以复制到webstorm里再看;也能帮助你理解的;
ttma1046
2015-08-02 13:44:19 +08:00
用chrome dev tools打开,按下美化键
feiyuanqiu
2015-08-02 14:27:23 +08:00
还真不像 uglify 之后的,还真像人写的...
好多变量名函数名都没改,短变量名选择的字母看起来也像是有意义的,比如 markerSize: {w: 23, h:35}
SilentDepth
2015-08-02 14:31:12 +08:00
@feiyuanqiu 是提供给外部的接口吧。函数内变量都abcde了,应该是uglify后的产物
ChiChou
2015-08-02 15:02:14 +08:00
@feiyuanqiu 这个当然丑化过了。变量成员名为了防止代码出错没有缩短。

顺便告诉你们这是 leaflet.js 里面的代码片段,不要问我怎么看出来的……
ChiChou
2015-08-02 15:03:17 +08:00
好吧应该是腾讯地图? - -
chairuosen
2015-08-02 15:15:19 +08:00
@feiyuanqiu var a,b,c;谁这么写代码会被队友打死的
lvfujun
2015-08-02 15:15:55 +08:00
因为这是压缩后的代码......
tushiner
2015-08-02 15:23:36 +08:00
变量名替换为简单字符,起到了压缩和混淆的目的
colorsand
2015-08-02 16:03:07 +08:00
@lvfujun
@tushiner
压缩过的能解压缩吗?
mani
2015-08-02 16:14:49 +08:00
@colorsand 当然不能了,只能美化下格式。
SilentDepth
2015-08-02 16:21:35 +08:00
@colorsand 貌似可以(记得以前见过JS反混淆工具),但不理想。计算机可以处理一些约定俗成的东西,但其他的就无能为力。(代码反混淆用AI,不敢想象……)
但格式化一下还是很简单的,然后如果代码不很庞大的话,利用refactor工具手动解密也不是不可行。
lvfujun
2015-08-02 18:26:04 +08:00
@colorsand 不可能解压缩的......
virusdefender
2015-08-02 19:39:17 +08:00
这是压缩和混淆过的 js

减小体积和防止直接泄露代码
magicdawn
2015-08-02 19:41:51 +08:00
@ChiChou

明明是 饿了么ELEME
ChiChou
2015-08-02 19:54:02 +08:00
@magicdawn eleme 用的腾讯地图的 API,没错啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/210215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX