Javascript 从对象内部访问当前对象
可能重复:Javascript 从对象内部访问当前对象,javascript,object,Javascript,Object,可能重复: 我正在创建这样一个对象: var lines = { all: [ /* Array */ ], current: this.all[1] } var lines = { all: [ /* Array */ ] } lines.current = lines.all[1]; 但是当前:this.all[1]返回未定义的。我很清楚,我可以像这样创建current属性: var lines = { all: [ /* Array */ ],
我正在创建这样一个对象:
var lines = {
all: [ /* Array */ ],
current: this.all[1]
}
var lines = {
all: [ /* Array */ ]
}
lines.current = lines.all[1];
但是当前:this.all[1]
返回未定义的。我很清楚,我可以像这样创建current
属性:
var lines = {
all: [ /* Array */ ],
current: this.all[1]
}
var lines = {
all: [ /* Array */ ]
}
lines.current = lines.all[1];
但我认为这是相当混乱的,尤其是当创建多个需要引用自己对象的属性时
我试着两者都用
current:this.all[1]
(返回未定义的)和
当前:行。所有[1]
(表示行
不存在)
如何引用当前“所在”对象的属性?例如,在我的第一个示例中,行。当前的
将从行分配第二个元素。所有的
除了您发布的解决方案之外,只有一个解决方案:
var lines = new function() {
this.all = [ /* Array */ ];
this.current = this.all[1];
};
除了您发布的解决方案之外,还有一个解决方案:
var lines = new function() {
this.all = [ /* Array */ ];
this.current = this.all[1];
};
因为current可能只是一个getter
根据某些约定,应该将名称更改为getCurrent()
,因为数组中的顶部元素可能会更改
然后把代码改成这样
var lines = {
all: [ /* Array */ ],
getCurrent: function(){return this.all[1];}
}
因为current可能只是一个getter
根据某些约定,应该将名称更改为getCurrent()
,因为数组中的顶部元素可能会更改
然后把代码改成这样
var lines = {
all: [ /* Array */ ],
getCurrent: function(){return this.all[1];}
}
相关的:相关的:我希望会有一个“更清洁”的解决方案,但我想没有。我本可以使用getter函数,但这更混乱,不适合使用console.log()
进行调试。我认为这与问题略有不同,因为本例中的行更接近OOP中的类,而不是object@Parv我真的不太烦;这个解决方案返回一个我所担心的对象。我希望有一个“更干净”的解决方案,但我想没有。我本可以使用getter函数,但这更混乱,不适合使用console.log()
进行调试。我认为这与问题略有不同,因为本例中的行更接近OOP中的类,而不是object@Parv我真的不太烦;此解决方案返回一个我所担心的对象。这是一个很好的解决方案,因为它将所有内容都保留在对象内,但是它在console.log()
中调试不太好,因此我决定改用new function()
。这是一个很好的解决方案,因为它将所有内容都保留在对象内,但是它在console.log()
中调试得不太好,所以我决定改用newfunction()
。