定义中的引用变量?

时间:2013-05-20 08:46:08

标签: javascript

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

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

4 个答案:

答案 0 :(得分:3)

你不能。

你必须做

var name = 'jack';

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

就像this answer所说,您也可以执行以下操作

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

var person = new Person();

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

答案 1 :(得分:1)

试试这个

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

答案 2 :(得分:0)

你不能。除了像sushil和谚语这样的解决方法之外,你不能引用仍在定义的对象。

你也可以试试getfunction

答案 3 :(得分: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');