我是一个JavaScript的新人,我正在努力去理解它。什么是这样的魔术JavaScript代码用于和如何创建?
以下片段javascript代码来自项目Vish的文件vishEditor.js,整个文件包含3万多行,因此我将魔术部分剪成小文件magic-javascript.js。
eval(function(p, a, c, k, e, r) {
e = function(c) {
return (c < a ? "" : e(parseInt(c/a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
.......
}
return p
}("(D($){8($.1s.1v){H}$.1s.6i=$.1s.1v=D(u,w){8(1l.S==0){18(J,'6j 55 6k 1j \"'+1l.4o+'\".');H 1l}8(1l.S>1){H 1l.1W(D(){$(1l).1v(u,w)})}F y=1l,$12=1l[0],56=L;8(y.1q('57')){56=y.1P('3o','4p');y.T('3o',['4q',J])}F z={};z.59=D(o,a,b ......
我有两个问题:
(1)当我运行该项目vish
,功能eval(function(p, a, c,k,e,r){}();
被调用,但我不知道该功能的具体目标,进行测试,我删除这个功能并重新启动它,它似乎工作正常。我很困惑,这个神奇功能用于什么?
(2)在here中有一个非常大的魔法代码,以("(D($){8($.1s.1v){H}$.1s.6i=$.
开头,它是什么意思以及如何创建这样一个魔法代码?
欢迎任何消息!
首先,你必须了解eval()函数做 – degr 2015-03-25 09:55:50