2012-03-08 43 views

回答

10

這是因爲comma operator返回其第二個操作數(並評估兩者)。

在你的問題中的代碼等價於:

1; 
var global = eval('this'); 
alert(global); 
+0

可悲的,但真正的... – powtac 2012-03-08 19:38:40

+0

你能解釋一下,也可以是一些鏈接將是有益的也真糊塗。 – 2012-03-08 19:39:52

+1

@Sheikh,我在我的答案中鏈接到了MDN文檔:)基本上,'(1,eval)'將逗號運算符''應用於'1'和'eval'。運算符評估'1',然後評估並返回'eval'。因此,'foo =(1,eval)(something)'等同於'1; foo = eval(某事);'。 – 2012-03-08 19:42:27