一段我从未见过的JS代码写法!

来源:百度知道 编辑:UC知道 时间:2024/06/19 23:38:39
下面是一个JS代码加密器加密后的JS代码。
被加密的源代码是alert("OK");

<script>
eval(
function(p,a,c,k,e,d)
{
e=function(c)
{
return c
};
if(!''.replace(/^/,String))
{
while(c--)
d[c]=k[c]||c;
k=[function(e){return d[e]}];
e=function()
{
return'\\w+'
};
c=1
};
while(c--)
if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
return p
}
('1("0");', 2, 2, 'OK|alert'.split('|'), 0, {})
)
</script>

请问最后一句('1("0");', 2, 2, 'OK|alert'.split('|'), 0, {})
是什么意思呀?看了半天死活没看懂!
大家能给我解释一下这段代码的思路吗?
谢谢一楼的,我是想知道最后一句代码什么意思呀?我还第一次见这样的写法,这种写法叫什么名呀?
另外我的卡巴竟然报我段代码是病毒,真是奇怪。大家能告诉它怎么是病毒了?

('1("0");', 2, 2, 'OK|alert'.split('|'), 0, {})

这个不是最后一句 这个代码 其实是这样看

function(p,a,c,k,e,d) {这里是函数内容}('1("0");', 2, 2, 'OK|alert'.split('|'), 0, {})

也就是说 ('1("0");', 2, 2, 'OK|alert'.split('|'), 0, {})

这个是 函数 function(p,a,c,k,e,d) 的 五个参数
也就是

p='1("0");'
a=2
c=2
k='OK|alert'.split('|')
e=0

最后一个{} 是一个空对象

如果不好理解的话。。这样看

<script type="text/javascript">
var a=function(b,c,d){
alert(b+c+d);
}
a("我","爱","你");//弹出“我爱你"
</script>

接着我们换成上面的写法,不用 变量 a;直接 把

a=function(b,c,d){
alert(b+c+d);
}

代入到 a("我","爱","你");

则有
<script type="text/javascript&