with ({a: 10, b: 20, "3": 30}) {
    alert(a);
    alert(b);
    alert(3); // ???? 如何访问"3"
}
如何获得"3"这个属性的值30?

解决方案 »

  1.   

    with就是改变当前作用域链,this应该可以吧!
    那个属性标示符也可以是数字?
    这个还真没试过。
      

  2.   

    剛剛試了一下..this..
     
    with ({a: 10, b: 20, "3": 30}) {
        alert(this.a); //undefined
    }
    說明this并不是指的這個匿名對象
    關注中
      

  3.   

    太深奥了,may be only:with (o={a: 10, b: 20, "3": 30}) {
        alert(a);
        alert(b);
        alert(o[3]); 
    }ps: JavaScript code that uses with is difficult to optimize and may therefore run more slowly than the equivalent code written without the with statement.So it is recommended that you avoid the with statement.
      

  4.   

    <script>
    var o = {a: 10, b: 20, "3": 30};
    with (o) {
    alert(a);
    alert(b);
    alert(o["3"]); // ???? 如何访问"3"
    }
    </script>
      

  5.   

    with ({a: 10, b: 20, "3": 30,c:function(){return this}}) {
        alert(a);
        alert(b);
        alert(c()["3"]); // ???? 如何访问"3"
    }
      

  6.   


    with ({a: 10, b: 20, "3": 30}) {
        alert(a);
        alert(b);
        alert(valueOf()["3"]);
    }
      

  7.   

    楼上正解,学习了~~
    with ({a: 10, b: 20, 3: 30}) {
        alert(a);
        alert(b);
        alert(valueOf()[3]);
      }
    这样也行~这个东东很强大~