如:var a = {
    // 先定义一个函数
    getAge: function () {
        return 99;
    },    // 想在这儿马上使用这个函数 ...
    age: getAge()
};在 chrome 里报错:
    ReferenceError: getAge is not defined (getAge 没有定义)可是又不能用 this, 这时的 this 指向了 window 对象了,好纠结啊

解决方案 »

  1.   

    age: function () { return this.getAge(); }
      

  2.   


    这样可以是可以,
    可是 age 从一个具体的值,变成了一个函数了我是想这样:var z = {
        a: 9, 
        b: a     // 将 a 的值马上给 b (b 不能是一个函数)
    };
      

  3.   

    直接定义好像不行,你可以
    var z = {
      a: 9
    };
    z.b=z.a
      

  4.   

    立即使用this无解,a这个json对象还没有生成呢。。age: (function (a) {
                alert(a); //输出undefined
                return a.getAge(); //报错了
    })(a)
      

  5.   

    在定义对象里面,可以用this啊,不会指向window对象的
      

  6.   


    这样就要多写几个字,而且排版也不美观,明明想表达的很简单,就是“把对象的 a 值再传给 b 一下”可是代码写起来,有点拐弯抹角的味道 ~~~~(>_<)~~~~