var MEvent = {
nD: function(l7){
return "_e__" + l7
},
gm: function(uy, l8){
return function(lM){
lM = ny(lM);
l8.call(uy, lM)
}
}
......}
var MEvent={
......
}
是定义类吗,这种和直接用function定义类有什么区别?nD: function(l7){
......
}
是定义类的方法吗,和用this.nD = function (){......}有什么区别?如果有详细说明请附上。
还有上面的一段代码是我从javascript文件中直接copy过来的,请问上面红字部分的变量是不是经过混淆过,有什么办法可以还原吗?
nD: function(l7){
return "_e__" + l7
},
gm: function(uy, l8){
return function(lM){
lM = ny(lM);
l8.call(uy, lM)
}
}
......}
var MEvent={
......
}
是定义类吗,这种和直接用function定义类有什么区别?nD: function(l7){
......
}
是定义类的方法吗,和用this.nD = function (){......}有什么区别?如果有详细说明请附上。
还有上面的一段代码是我从javascript文件中直接copy过来的,请问上面红字部分的变量是不是经过混淆过,有什么办法可以还原吗?
function Class1()
{
var s="123";
this.p=s;
this.ShowString =function ()
{
alert(this.p);
}
}
var c=new Class1()
alert(c.p);
c.ShowString();
var MEventB = function([args]) { ... } 可以用来定义一个类, 其实他也是对象
MEventA 可以直接使用, MEventA.nD(...) 直接调用nD方法
而 MEventB 要建立它的实例来使用, 如var meb = new MEventB(); meb.nD();
想再请问我问题中红色标识的变量是经过混淆或加密或其它处理的吗?有什么方法可以转化吗
parseInt(expr, radix) 是把一个表达式expr转换成十进制整数, radix表示expr的进位数
36进制下, z的十进制值是35, parseInt('ZZ',36) 的计算方法就是 35*36的1次方+35*36的0次方, 即35*36+35=1295
2 ? 1 : 0是一个三元表达式(condition ? truepart : falsepart), 当 condition 能转换成布尔真值时, 表达式返回truepart, 否则返回falsepart.
所以2 ? 1 : 0返回truepart, 结果为1
return 1;
else
return 0;
var cq = {
pu: {},
vp: function(li){
return this.pu[li] || function(pu, xT){
var v6;
......
v6 = new Array();
......
pu[xT] = v6;
return v6
}
else {
......
pu[xT] = v6;
return v6
}
}(this.pu, li)
},
......
}其中红色标出的pu应该是定义了一个空类,但是绿色标识的 pu又被当成了数组来使用,请问是什么特殊用法吗?
还有类似this.pu,这种带 this的变量的使用范围是什么?是全局变量还是局部变量?谢谢
this是指当前对象, 通常在对象的建立的时候使用,用来引用对象本身. 绿色的this.pu不是变量, 而是指cq这个对象的pu成员, 就是红色的那个对象
pu: {},
vp: function(li){
return this.pu[li] || function(pu, xT){
var v6;
......
v6 = new Array();
......
pu[xT] = v6;
return v6
}
else {
......
pu[xT] = v6;
return v6
}
}(this.pu, li)
},
......
}
这种是用对象直接量(也称为对象初始化程序)创建的对象,javascript中的只要是{}对就是一个对象,比如:写个类
function myClass()
{}
myClass.prototype=cq;
这样,myClass就会包含对象cq中的所有属性和方法.