日期:2014-05-16  浏览次数:20367 次

JSON 表达式里怎么取 this?

如:

var a = {
  // 先定义一个函数
  getAge: function () {
  return 99;
  },

  // 想在这儿马上使用这个函数 ...
  age: getAge()
};

在 chrome 里报错:
  ReferenceError: getAge is not defined (getAge 没有定义)

可是又不能用 this, 这时的 this 指向了 window 对象了,

好纠结啊


------解决方案--------------------
直接定义好像不行,你可以
var z = {
a: 9
};
z.b=z.a
------解决方案--------------------
立即使用this无解,a这个json对象还没有生成呢。。

JScript code
age: (function (a) {
            alert(a); //输出undefined
            return a.getAge(); //报错了
})(a)