我看过很多网站都有一些function (p,a,c,k,e,d)javascript代码.不同的网站可能有不同的功能,但为什么他们都使用这个参数名称(p,a,c,k,e,d)?我的意思是它是一个标准或什么或图书馆,他们遵循相同的惯例.
其次,看起来这个函数应该在页面加载后立即执行.就像网站上的以下代码片段一样.
你能帮助我理解这段代码吗:eval()用于评估表达式,2+3但以下代码如何将函数传递给它?
try{
eval(
function(p,a,c,k,e,d)
{
//some code goes here
}
}catch(err){}
Run Code Online (Sandbox Code Playgroud)
这个问题可能听起来很愚蠢但严重的我想要了解它的神秘面纱function (p,a,c,k,e,d),所以不要贬低.
小智 23
因此,如果您在评论中使用http://matthewfl.com/unPacker.html,它会将代码"解包"到此:
(function()
{
var b="some sample packed code";
function something(a)
{
alert(a)
}
something(b)
}
)();
Run Code Online (Sandbox Code Playgroud)
它似乎并不是恶意的.有关为什么要使用它的一个软论证,请参阅javascript packer与minifier:
包装较小但速度较慢.
甚至更难调试.
大多数众所周知的框架和插件只是缩小了.
Packer做了更多,然后重命名变量和参数,它实际上使用Base62映射源代码,然后必须通过eval()在客户端重建,以便可用.在eval()方面踩踏是一个邪恶的问题,当你开始打包更大的JS库(如jQuery)时,这也可能在页面加载期间在客户端上产生大量开销.这就是为什么只建议缩小你的生产JS,因为如果你有足够的代码需要打包或缩小,你有足够的代码使eval()在页面加载期间阻塞客户端.
Minifier只删除不必要的东西,比如白色空格字符,Packer更进一步,并尽一切可能做到最小化javascript的大小.例如,它将变量重命名为较小的名称.
| 归档时间: |
|
| 查看次数: |
23630 次 |
| 最近记录: |