自定义函数(p,a,c,k,e,d)用于什么?

Ins*_*der 27 javascript

我看过很多网站都有一些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的大小.例如,它将变量重命名为较小的名称.