我有这个代码,不要误解我一切正常
var w = "window" ,
gg = "gg" ,
pr = "prototype" ,
al = "alert" ,
pi = "parseInt" ,
st = String ,
ts = "toString";
st[pr][gg] = function(){return window[this[ts]()];};
w = w[gg]();
w[al](w[pi]("0"));
当我替换这段代码时问题就开始了
w = w[gg]();
w[al](w[pi]("0"));
这一个
w[gg]()[al](w[pi]("0"));
现在它无法正常工作。
我不明白,它假设得到相同的结果,这里有什么问题?
答案 0 :(得分:2)
有两个位置使用w
:
w[al](w[pi]("0"));
^ ^
所以你需要在w[gg]()
中替换:
w[gg]()[al](w[gg]()[pi]("0"));
^^^^^^^ ^^^^^^^
另请注意,此转换可能仍然不等效,例如w[gg]()
有副作用或不确定。