小编pas*_*rby的帖子

打字稿:object.hasOwnProperty()在继承的属性上显示true。为什么?

如果我理解正确,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)

inheritance hasownproperty typescript

2
推荐指数
1
解决办法
1511
查看次数

标签 统计

hasownproperty ×1

inheritance ×1

typescript ×1