采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师好, 5.3节JS原型的两个问题请教一下: 1、请问**sayHi()**方法为什么不像name,number属性一样是实例xialuo自身的属性方法,而是放到Student类的prototype显示原型中? 2、因为方法/函数存放在显示原型中,以Student类为例,判断是不是该类的方法语法应该为:Student.prototype.hasOwnProperty(“sayHi”)?
第一,sayHi 是一个函数,使用面向对象和继承时,一般放在 prototype 中。当然,你也可以将 sayHi 直接赋值给 xialuo ,只不过那样的话,就仅仅是 xialuo 的,没法再给其他对象继承了。
第二,没搞定,你为何要有这个判断呢?不需要这个判断,直接使用就行。
谢谢
把代码贴出来吧,这样其他同学也能看明白。
(问题还是希望能更多的被分享,望理解哈)
<script> //父类 class People{ constructor(name){ this.name = name; } eat(){ console.log(`${this.name} eat something`); } } //子类,extends继承 class Student extends People{ constructor(name,number){ super(name);//访问父类属性 this.number = number; } //子类扩展方法 sayHi(){ console.log(`${this.name} ${this.number} play ball`); } } let xialuo = new Student("John","001"); //问题1:sayHi()方法为什么不像name,number属性一样是实例xialuo自身的属性方法,而是放到Student类的prototype显示原型中? console.log(stu1.hasOwnProperty("name")); //true console.log(stu1.hasOwnProperty("sayHi")); //false //问题2:判断该类的方法语法是不是:类.prototype.hasOwnProperty("函数") console.log(Student.prototype.hasOwnProperty("sayHi"));//true </script>
登录后可查看更多问答,登录/注册
针对时下面试高频考点,帮助新人js面试快速通关
1.7k 17
1.8k 11
1.3k 11
1.9k 11