美文网首页web前端自学之路
web前端 -- Day24 js高级

web前端 -- Day24 js高级

作者: 韩发发吖 | 来源:发表于2019-03-26 14:02 被阅读0次

    原型链 重点

    原型链: 是一种关系,实例对象和原型对象之间的关系,关系是通过原型(__proto__)来联系的。

     //人的构造函数
        function Person(age) {
          this.age=10;
        }
        //人的原型对象方法
        Person.prototype.eat=function () {
          console.log("吃什么?什么时候吃?");
        };
        //学生的构造函数
        function Student() {
    
        }
        Student.prototype.sayHi=function () {
          console.log("身为学生,怎么能不好好学习");
        };
        //学生的原型,指向了一个人的实例对象
        Student.prototype=new Person(10);
        var stu=new Student();
        stu.eat();
        stu.sayHi();
    

    原型指向可以改变

    1. 实例对象的原型__proto__指向的是该对象所在的构造函数的原型对象。
    2. 构造函数的原型对象(prototype)指向如果改变了,实例对象的原型(__proto__)指向也会发生改变。

    原型的指向是可以改变的 如果原型指向改变了,那么就应该在原型改变指向之后添加原型方法
    实例对象和原型对象之间的关系是通过__proto__原型来联系起来的,这个关系就是原型链。

    函数中的this的指向

    1. 普通函数中的this是谁? --> window
    2. 对象.方法中的this是谁? --> 当前的实例对象
    3. 定时器方法中的this是谁? --> window
    4. 构造函数中的this是谁? --> 实例对象
    5. 原型对象方法中的this是谁? --> 实例对象

    注意:BOM中顶级对象是window,浏览器中所有的东西都是window的

    相关文章

      网友评论

        本文标题:web前端 -- Day24 js高级

        本文链接:https://www.haomeiwen.com/subject/ynugvqtx.html