您好,我正在查看是否可以获取对象的属性并在另一个对象中使用它,例如
let obj = {
something:"a string",
name:"a test obj
info: {
name: need the name above
}
}
所以在最后一个嵌套名称中,我希望上面的名字也在那里,我试着像这样。但是没有运气
答案 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>