我有这个代码,不要误会我,一切都很好

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"));


现在不起作用。

我不明白,它想得到相同的结果,这是怎么了?

最佳答案

使用w的地方有两个:

w[al](w[pi]("0"));
^     ^


因此,您需要用w[gg]()替换两次:

w[gg]()[al](w[gg]()[pi]("0"));
^^^^^^^     ^^^^^^^


另请注意,例如w[gg]()具有副作用或不确定性时,此转换可能仍不等效。

关于javascript - javascript语法阅读器错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7800420/

10-11 13:48