我看过很多网站的javascript代码都有function (p,a,c,k,e,d)
。不同的网站可能有不同的功能,但为什么他们都使用这个参数名称(p,a,c,k,e,d)
?我的意思是它是一个标准或什么或图书馆,他们遵循相同的惯例。
其次,看起来这个函数应该在页面加载后立即执行。就像网站上的以下片段一样。
你能帮助我理解这段代码:eval()
用于评估像2+3
这样的表达式,但下面的代码是如何将函数传递给它的?
try{
eval(
function(p,a,c,k,e,d)
{
//some code goes here
}
}catch(err){}
这个问题可能听起来很愚蠢,但我认真地想要理解function(p,a,c,k,e,d)
的奥秘,所以不要贬低。
答案 0 :(得分:23)
因此,如果您在评论中使用http://matthewfl.com/unPacker.html,则会将代码“解包”到此处:
(function()
{
var b="some sample packed code";
function something(a)
{
alert(a)
}
something(b)
}
)();
它似乎并不是恶意的。有关使用此内容的简要论据,请参阅javascript packer versus minifier:
包装较小但速度较慢。
甚至更难调试。
大多数众所周知的框架和插件都只是缩小了。
<小时/> Packer做的更多,然后重命名变量和参数,它实际上映射 使用Base62的源代码,然后必须在客户端上重建 通过eval(),以便可以使用。
侧面踩eval()是这里的邪恶问题,这也可以创建一个 启动时页面加载期间客户端上的大量开销 包装更大的JS库,比如jQuery。这就是为什么只做缩小 关于你的生产JS是值得推荐的,因为如果你有足够的代码 需要打包或缩小,你有足够的代码来使eval() 在页面加载期间阻塞客户端。
<小时/> Minifier只删除不必要的东西,如空格字符 Packer更进一步,做任何可以做的事情 最小化javascript的大小。例如,它将变量重命名为 较小的名字。
答案 1 :(得分:3)
它是一个解压缩/混淆的javascript代码的函数。许多JS库和脚本都使用它。
有online tools您可以通过浏览器打包和解包代码,使用该功能。
答案 2 :(得分:1)
正如我所见,http://www.indiabix.com中使用了eval(function(p,a,c,k,e,d){})
,当用户下载页面并打开它时,{{1}}使用它来隐藏整个内容。也许这是特定代码的内部工作原理。