大国工匠普拉斯金
2021-11-25 21:18
采纳率: 73.3%
浏览 17
已结题

js es6 super继承方法加return和不加return有何区别?


    <script>
        class Father {
            constructor(x, y) {
                this.x = x;
                this.y = y;
            }
            sum() {
                this.x + this.y;
            }
        }
        class Son extends Father {
            test() {
                console.log(super.sum() + 123);
            }
        }
        var son = new Son(1, 2);
        son.test();
    </script>

Son继承了Father,在test()方法中使用super调用了sum(),Father中的sum()方法没有写return 控制台输出的是Nan

img

        class Father {
            constructor(x, y) {
                this.x = x;
                this.y = y;
            }
            sum() {
                return this.x + this.y;
            }
        }
        class Son extends Father {
            test() {
                console.log(super.sum() + 123);
            }
        }
        var son = new Son(1, 2);
        son.test();

这里面sum()方法加了return 就正常了控制台输出126
如图

img


请问一下这是为什么呢?为什么要加return呢?

1条回答 默认 最新

相关推荐 更多相似问题