老师,这里为啥会有undefined

来源:2-1 Class 是什么

张小阳_

2022-10-31 23:00:56

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        class Person {
            constructor(name, age) {    // 实例化时执行构造方法,所以必须有构造方法,但可以不写出来
                console.log('实例化时执行构造函数');
                this.name = name;
                this.age = age;
            }
            speak() {
                console.log('hello');
            }
        }

        const zs = new Person('zhangSan', 20);
        const ls = new Person('liSi', 29);
        console.log(zs);
        console.log(zs.name);
        console.log(zs.age);
        console.log(ls.speak());
        console.log(zs.speak());
        console.log(zs.speak() === ls.speak());
    </script>
</body>

</html>

https://img.mukewang.com/climg/635fe3120951229317290674.jpg

写回答

1回答

好帮手慕久久

2022-11-01

同学你好,解答如下:

console.log(ls.speak())这句代码包含两个内容:

1、执行speak方法,此时会打印出hello(这个打印是speak方法中的console.log):

https://img.mukewang.com/climg/636078d5091b99ae05350457.jpg

2、打印出speak方法的返回值:

https://img.mukewang.com/climg/636078fa0939c77606580380.jpg

speak方法中并没有定义返回值,所以会打印undefined。

console.log(zs.speak())这句代码同理,所以控制台会输出2个undefined。

祝学习愉快!

0

0 学习 · 17877 问题

查看课程