我扩展了一个类,并向孩子添加了1个带有getter和setter的属性。
现在,我在调试器中看到,这个新的子类没有使用其父类的某些属性。
含义:当我使用父级时,这些属性通过了,但是对于子级,它们为null / 0。但是,并非所有属性都为空。
我很好奇-通过扩展原始类,是否应该在新的子类中继承所有原始行为?
一些代码示例:
sort
孩子:
const a = [
{
"Grid": {
"Day": [
11,
12
]
},
"Name": "One"
},
{
"Grid": {
"Day": [
5,
2
]
},
"Name": "Two"
}
]
const daySum = ({Grid}) => Grid.Day.reduce((prev, curr) => prev+curr, 0)
const sorted = [...a].sort(daySum)
console.log(sorted)
console.log(a) //Original array intact
父级上没有构造函数,任何继承者都应该被继承。我想念什么?
答案 0 :(得分:1)
ParentLensRequest
唯一的属性是intervals
,即private
。尽管ChildLensRequest
实例确实具有intervals
字段(因为ChildLensRequest
的实例是ParentLensRequest
的实例),但是ChildLensRequest
中的代码无法看到它,因为private
。 (ParentLensRequest
中的代码可以在子实例上看到它,而在代码类中则看不到。)
如果您希望子类能够以自己的代码与intervals
进行交互,请为其提供更宽的访问级别(例如protected
)。