如果我理解正确,object.hasOwnProperty()则应在父类的继承属性上返回false。但是,以下代码在自己的属性和继承的属性上均返回true。
我的理解/代码不正确还是hasOwnPropery()不正确?如果是我,如何区分自己的属性和继承的属性?
编辑:我已经将用例添加到示例代码中。
我希望孩子的fromDb()只照顾自己的属性,相反,它将覆盖父母的设置的属性fromDb()。
class Parent {
parentProp = '';
fromDb(row: {}) {
for (const key of Object.keys(row)) {
if (this.hasOwnProperty(key)) {
if (key === 'parentProp') {
// Do some required data cleansing
this[key] = row[key].toUpperCase()
} else {
this[key] = row[key];
}
}
};
return this;
}
}
class Child extends Parent {
childProp = '';
fromDb(row: {}) {
super.fromDb(row);
for (const key of Object.keys(row)) {
if (this.hasOwnProperty(key)) {
this[key] …Run Code Online (Sandbox Code Playgroud)