title: Super Tricky Javascript quiz, need to figure out about the answer
body: <pre><code>   //1st question
     var x = 4,
       obj = {
         x: 3,
         bar: function() {
           var x = 2;
           setTimeout(function() {
             var x = 1;
             alert(this.x);
           }, 1000);
         }
       };
     obj.bar();
  
     //2nd question
     function foo(a) {
       arguments[0] = 2;
       alert(a);
     }
     foo(1);
  </code></pre>
  
  <p>1.why it returns 4 instead of 1? i thought this.x refer to 1, but it seems wrong....i just dont understand why it returns 4</p>
  
  <p>2.why it return alert 2 instead of 1, i thought i pass a to function a, and as far as i know, i pass 1 to function foo, and 1 should be alerted because of a(which is 1 when i pass)....i just don't understand why it alert 2</p>