从当前对象获取属性以在另一个对象中使用属性值

时间:2018-02-06 12:57:45

标签: javascript

您好,我正在查看是否可以获取对象的属性并在另一个对象中使用它,例如

let obj = {
  something:"a string",
  name:"a test obj
  info: {
       name: need the name above
   }
}

所以在最后一个嵌套名称中,我希望上面的名字也在那里,我试着像这样。但是没有运气

3 个答案:

答案 0 :(得分:0)

作为实现结果的另一种方式,您可以在对象上使用getter函数。

您基本上创建了一个方法,当您尝试访问对象上的属性时将运行该方法,您可以拦截调用并返回不同的值,因为它位于对象的根目录下,它具有正确的上下文来获取名称属性。

let obj = {
  something:"a string",
  name:"a test obj",
  get info() {
    return {
      name: this.name
    }
  }
}

console.log(obj.info.name)

答案 1 :(得分:0)

如果您要重用这样的值,只需在创建对象之前将它们声明为变量:

const name = 'Bob';

const obj = {
  something: 'a string',
  name,
  info: { name }
}

console.log(obj);

答案 2 :(得分:0)

var app = angular.module("app", []);

app.controller("BaseController", function($scope) { 
   let obj = {name:"a test obj"};
   obj = {something:"a string",name:"a test obj",
   info: {name:  obj.name}
};
  $scope.obj = obj;
   
   
}); 
<!DOCTYPE html>
<html>

  <head>
    <script data-require="angularjs@1.5.5" data-semver="1.5.5" src="https://code.angularjs.org/1.5.5/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-app="app" ng-controller="BaseController">
    {{obj}}
  </body>

</html>