这篇文章有详解:http://odetocode.com/blogs/scott/archive/2007/07/04/11067.aspx

解决方案 »

  1.   

    function a(){
    this.a="aa";
    var b={
    l:(this.a="bb"),
    d:alert(this.a)
    }
    alert(this.a)
    }
    a()
      

  2.   

    function a(){
        this.a="aa";
        var b={
            c:alert(this.a)
        }
    }
    new a();
    a.apply(b);
    输出的结果是: 先输出了 "aa",然后抛出一个错误:'b' 未定义1. 当执行 new a();的时侯 会执行 alert(this.a); 输出"aa"
    2.apply() 方法里面的参数  b 我们并没有定义这个对象,所以会报错..
    要学习一下 apply()   方法的使用.
      

  3.   

    var a = {
        f1: alert("什么对象的时候,就会运算了。")
    }