0

在 Javascript 中定义变量时如何引用变量?

var person = {
 basic: {
   name: 'jack',
   sex: 0,
 },
 profile: {
   AA: 'jack' + '_sth', # How can I write like this: AA: basic.name + '_sth'
 },
};
4

4 回答 4

3

你不能。

你所要做的

var name = 'jack';

var person = {
 basic: {
   name: name,
   sex: 0
 },
 profile: {
   AA: name + '_sth'
 }
};

就像这个答案说的那样,您也可以执行以下操作

function Person() {
  this.basic = {
    name: 'jack',
    sex: 0
  };
  this.profile = {
    AA: this.basic.name + '_sth'
  };
}

var person = new Person();

但这会创建 的实例Person,而不是简单的 JS 对象。

于 2013-05-20T08:48:46.503 回答
1

尝试这个

    var person = {
     basic: {
       name: 'jack',
       sex: 0
     }
   };
    person.profile= {
       AA:person.basic.name + '_sth'
    };
于 2013-05-20T08:47:46.973 回答
0

你就是不能。除了像 sushil's 和 pvorb's 这样的解决方法之外,您不能引用仍在定义的对象。

你也可以试试getfunction

于 2013-05-20T08:50:03.137 回答
0

您还可以使用立即调用函数表达式 ( IFFE ):

var person = function(name) {
 var prsn = {
      basic: {
        name: name || 'anonymous',
        sex: 0
       }
      };
 return {basic: prsn.basic, profile: {AA: prsn.basic.name + '_sth'}};
}('Jack');
于 2013-05-20T09:06:27.133 回答