请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

5.3原型和hasOwnProperty判断自身方法的问题

老师好,
5.3节JS原型的两个问题请教一下:
1、请问**sayHi()**方法为什么不像name,number属性一样是实例xialuo自身的属性方法,而是放到Student类的prototype显示原型中?
2、因为方法/函数存放在显示原型中,以Student类为例,判断是不是该类的方法语法应该为:Student.prototype.hasOwnProperty(“sayHi”)?

正在回答

2回答

第一,sayHi 是一个函数,使用面向对象和继承时,一般放在 prototype 中。当然,你也可以将 sayHi 直接赋值给 xialuo ,只不过那样的话,就仅仅是 xialuo 的,没法再给其他对象继承了。

第二,没搞定,你为何要有这个判断呢?不需要这个判断,直接使用就行。

0 回复 有任何疑惑可以回复我~
  • 提问者 晓之蛇 #1
    谢谢
    回复 有任何疑惑可以回复我~ 2020-12-24 21:03:54
双越 2020-12-24 14:59:49

把代码贴出来吧,这样其他同学也能看明白。

(问题还是希望能更多的被分享,望理解哈)

0 回复 有任何疑惑可以回复我~
  • 提问者 晓之蛇 #1
    <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>
    ​
    回复 有任何疑惑可以回复我~ 2020-12-24 17:34:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信