1
我有以下問題:我有一個類Foo,它覆蓋toString()的默認實現。當對象使用對象初始化時,不會調用Overriden toString()
class Foo {
bar: string;
toString(): string {
return this.bar;
}
}
當我初始化的(類型),一個新的變量對象文字和調用toString()這個新對象的標準JavaScript實現被稱爲上。因此,「[object Object]」被打印到控制檯中。
let foo : Foo = {
bar: "baz"
}
console.log(foo.toString()) // does not invoke Foo.toString()
然而,當我創建對象的新運營商的一切就像一個魅力:
let foo: Foo = new Foo();
foo.bar = "baz"
console.log(foo.toString()); // prints out "baz"
我在做什麼錯?我想避免第二種選擇,因爲實際上Foo對象具有許多(嵌套的)屬性。這樣會導致非常詳細的對象初始化。
謝謝您的澄清。 –