javascript函数中返回对象的范围

3 javascript

我如何访问下面的"a"?

var test = function () {
     return {
        'a' : 1,
        'b' : this.a + 1  //doesn't work
    };
};
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 8

你不能这样做.当您正在构建对象(这是您使用花括号实际执行的操作)时,在构造之前无法访问它的属性.

var test = function () {
  var o = {};
  o['a'] = 1;
  o['b'] = o['a'] + 1;
  return o;
};
Run Code Online (Sandbox Code Playgroud)