web前端 -- Day24 js高级

原型链 重点

原型链: 是一种关系,实例对象和原型对象之间的关系,关系是通过原型(__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的

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、 JS面向对象编程 1、 面向对象介绍 什么是对象? Everything is object (万物皆对象)...
    宠辱不惊丶岁月静好阅读 940评论 0 2
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,595评论 0 21
  • 学习目标: 理解面向对象开发思想 掌握 JavaScript 面向对象开发相关模式 掌握在 JavaScript ...
    金桔柠檬加冰阅读 445评论 0 0
  • 1,javascript 基础知识 Array对象 Array对象属性 Arrray对象方法 Date对象 Dat...
    Yuann阅读 1,182评论 0 1
  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,307评论 0 6

友情链接更多精彩内容