为什么我打印不出来
来源:2-5 音乐播放器类实例
Ting111
2020-12-08 22:55:34
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
class person{
constructor(){
this.age=3;
this.sex=female;
this.height=171;
this.work();
}
work(){
this.work=accounting;
console.log(this.work);
}
}
</script>
</body>
</html>
4回答
同学你好,问题解答如下:
1.你的代码也可以在constructor中调用方法(函数),只是类没有实例化,那么类里面的代码不会执行。课程里面也是要把类实例化,类里面的代码才会执行。如下是视频中实例化:

这是基础的语法,我们学过的知识忘记很正常,但是一定要复习,不然学习后面的课程会越来越吃力。建议同学从第二章开始复习一下类的使用,以巩固所学知识。

2.是的,female 和accounting不属于任何数据类型(数值、字符串、对象、布尔类型、null、undefined),所以js解析代码时,默认把它们作为变量。如果female 和accounting加上引号,那么表示一个字符串类型的值。或者直接写成一个数字,那么是数值类型的值。具体要赋值什么类型,看自己的实际需求就行哦。
3. 第一次回复粘贴的代码,没有问题,只不过代码中没有打印任何内容,所以看不到什么效果。既然定义了参数,那么调用work时传入一个实参,然后在方法中打印一下:

4.不是的。参考上面第三条,是可以在work中传递参数的,同学写代码的时候没有传递实参而已,可以自己参考上面的代码改一下哦
祝学习愉快~
Ting111
提问者
2020-12-09
female accounting是变量的意思是 如下
class Person{
constructor(){
this.age=1;
this.sex=2;
this.height=3;
this.work=4;
}
}
const a=new Person();
console.log(a);
只能在定义的时候给数字不能给英文单词是吗,英文单词默认是变量?要直接定义单词的话要加引号?如下
structor(){
this.age=1;
this.sex='male';
this.height=3;
this.work=4;
Ting111
提问者
2020-12-09
为什么视频里可以在constructor后面写函数并且调用我写就不行
好帮手慕夭夭
2020-12-09
同学你好,问题与修改如下:
1.因为代码中只是定义了一个类,这个类名没有实例化,所以不会执行。参考如下设置:

如果后续想要使用实例化对象,也可以定义一个变量赋值在,这样通过此变量就可以方便调用类里面的属性或者方法了:

2.如下female和accounting是变量,变量没有定义直接使用会报错。


如下修改:
不知道同学具体要如何用,这里老师定义成参数,并任意传递了一些内容,方便查看效果

结果如下:

另外,建议把当前课程再从头复习一下,以巩固所学知识哦。
祝学习愉快~
相似问题