定义中的引用变量

Reference variable in definition?

本文关键字:变量 引用 定义      更新时间:2023-09-26

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

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

你不能。

你必须做

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对象。

试试这个

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

你就是不能。除了像sushil’s和pvorb’s这样的方法,你不能引用一个仍在定义的对象。

也可以尝试getfunction

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

var person = function(name) {
 var prsn = {
      basic: {
        name: name || 'anonymous',
        sex: 0
       }
      };
 return {basic: prsn.basic, profile: {AA: prsn.basic.name + '_sth'}};
}('Jack');