最近我在代码中发现了一个障碍。我正在使用我的自定义对象和它们的数组。我发现一种情况下push()方法有效,而另一种情况下无效。
第一种情况(正常):
class MyObject{
private reference: d3.Selection<SVGElement>;
public constructor(ref: d3.Selection<SVGElement>){
this.reference = ref;
}
}
interface ViewModel{
objects: MyObject[]
}
class MyApp{
private root: d3.Selection<SVGElement>
private viewModel: ViewModel;
constructor(options: Type){
this.root = options.root
this.viewModel.objects.push(new MyObject(this.root))
}
}
第二种情况(无效):
class MyObject{
private reference: d3.Selection<SVGElement>;
public constructor(ref: d3.Selection<SVGElement>){
this.reference = ref;
}
}
class MyApp{
private root: d3.Selection<SVGElement>
private objects: MyObject[];
constructor(options: Type){
this.root = options.root
this.objects.push(new MyObject(this.root)) //seems to freeze the whole program
}
}
我在做什么错? 任何帮助将不胜感激。
米哈尔
答案 0 :(得分:0)
您尚未初始化objects
数组:
private objects: MyObject[] = [];
那可能有用:)
尽管如此,您尚未在“工作”示例中初始化viewModel
。所以我想你发布了代码的剥离版本?