2012-03-08 11 views

उत्तर

10

ऐसा इसलिए है क्योंकि comma operator अपनी दूसरी संकार्य रिटर्न (और दोनों का मूल्यांकन करता है) है।

अपने प्रश्न में कोड के बराबर है:

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

दुख की बात लेकिन सच है ... – powtac

+0

आप व्याख्या कर सकते हैं या हो सकता है कुछ लिंक उपयोगी भी वास्तव में उलझन में हो जाएगा। –

+1

@ शेख, मैंने अपने उत्तर में एमडीएन दस्तावेज से लिंक किया :) मूल रूप से, '(1, eval) 'अल्पविराम ऑपरेटर',' '' '' और 'eval' लागू होता है। ऑपरेटर '1' का मूल्यांकन करता है, फिर मूल्यांकन करता है और' eval' देता है। इसलिए, 'foo = (1, eval) (कुछ) '' 1 के बराबर है; foo = eval (कुछ); '। –

संबंधित मुद्दे