引用自己的JavaScript对象中的另一个对象
我声明自制是cask的一个依赖项,并通过引用自己的JavaScript对象中的另一个对象,javascript,object,Javascript,Object,我声明自制是cask的一个依赖项,并通过this.Homebrew[0]引用自制。JavaScript可以实现类似的功能吗 var data = { homebrew: [ { title: "Homebrew", dependencies: [], install: function() { console.log('homebrew') } }, { title: "Cask",
this.Homebrew[0]
引用自制。JavaScript可以实现类似的功能吗
var data = {
homebrew: [
{
title: "Homebrew",
dependencies: [],
install: function() {
console.log('homebrew')
}
},
{
title: "Cask",
dependencies: [
this.homebrew[0]
],
install: function() {
console.log('cask')
}
}
]
}
这是可能的。您可以做的一件事是在数组之外创建对象,并以这种方式设置引用,例如:
var Homebrew = { title: "Homebrew" }
var Cask = { title: "Cask", dependencies: [Homebrew] }
var data = [ Homebrew, Cask ]
一种可能性是使用单独的依赖项对象
var data = {
homebrew: [
{
title: "Homebrew",
dependencies: [],
install: function() {
console.log('homebrew')
}
},
{
title: "Cask",
dependencies: [
this.homebrew[0]
],
install: function() {
console.log('cask')
}
}
]
};
var dependencies = [
{
data.homebrew[0],
data.homebrew[1]
}
];
使用Javascript语法(定义getter)的解决方案:
var数据={
自制:[
{
标题:“自制”,
依赖项:[],
安装:函数(){
console.log(“自制”)
}
},
{
标题:“木桶”,
获取依赖项(){/数据
在您的案例中应该是一个对象。此外,依赖项
在进一步的逻辑中是如何使用的?依赖项
应该将整个对象映射为自制
您不能在一个单步对象文字中完成它-如果您使用多步初始化,这是可能的。我认为这是一种不安全的方法。如果重新排列了自制
数组,则dependencies
属性将继续返回第0项,从而破坏依赖关系图。它还破坏了我的一条基本规则,即对象在内部不应通过其所分配变量的名称来引用自身。re:后面的注释,请尝试var x=data;data={};console.log(x.homebrew[1].dependencies)
-您现在有一个损坏的对象