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

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条回答 默认 最新

  • 麦田上的字节 前端领域优质创作者 2021-11-25 21:24
    关注

    return是让值返回,所以可以取到那个值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 已采纳回答 1月14日
  • 创建了问题 11月25日