大国工匠普拉斯金 2021-11-25 21:18 采纳率: 75%
浏览 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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度