美文网首页
JS构造函数原型与实例的思考

JS构造函数原型与实例的思考

作者: 秘果_li | 来源:发表于2020-05-28 17:19 被阅读0次
    Function.prototype.a=()=>{
      console.log('aaaaa')
    }
    Object.prototype.b=()=>{
      console.log('bbb')
    }
    function A(){
      this.name = 'user'
    }
    A.prototype.c=()=>{
      console.log('ccc')
    }
    const a=new A()
    
    a.a(); // "error" "TypeError: a.a is not a function"
    a.b(); // "bbb"
    a.c(); // "ccc"
    A.a(); // "aaaaa"
    A.b(); // "bbb"
    A.c(); // "error" "TypeError: A.c is not a function"

在JS中,所有对象都是 Object 的实例,Object是原型链的源头

console.log(Object.prototype.__proto__); // null

a是A的实例,可以访问A原型上的方法 c()b() 在Object原型上,任何对象都可以访问到 b() 函数

    Object.prototype.b=()=>{
      console.log('bbb')
    }
    const obj={};
    obj.b(); // "bbb"

方法 a() 在 Function 原型上,A 是 Function 的实例,因此 A 可以访问到 a() ,原型链是通过 __ proto __ 指向查找的

实例中的指针只指向原型,而不是构造函数

因此实例 a 并不能访问到 a()

关于原型与构造函数的关系:
每个函数都有一个 prototype 属性指向该函数的原型对象,而所有的原型对象都会获得一个 constructor 这个属性包含了一个指向 prototype 属性所在函数的指针

相关文章

  • 2018-07-11

    JS原型和原型链 1.每个构造函数生成实例的时候 会自带一个constructor属性 指向该构造函数 实例.co...

  • 12.如何查找构造函数和原型的属性

    构造函数.prototype 查看构造函数的原型属性实例对象.ptoto 查看实例对象的构造函数的原型实例对象...

  • javascirpt复习

    实例中访问构造函数原型的指针,指向的是构造函数原型,不是构造函数; 所以重写构造函数原型对象,【实例对象】访问还是...

  • JS构造函数原型与实例的思考

    在JS中,所有对象都是 Object 的实例,Object是原型链的源头 a是A的实例,可以访问A原型上的方法 c...

  • 原型链

    构造函数、原型、实例的关系 通过构造函数创建实例 每个构造函数都有一个原型对象 原型对象到包含一个指向构造函数的指...

  • 继承

    原型链 将一个构造函数的实例作为子构造函数的原型对象,这样,子构造函数的原型对象中会继承到父构造函数实例上的属性方...

  • JS题目

    JS 1、原型/原型链/构造函数/实例/继承 1. proto(原型) 每个对象又有proto属性,指向创建他的构...

  • Javascript 基础之原型链

    构造函数、构造函数实例、构造函数原型 function Student (name) { } - 这是构造函数va...

  • JavaScript

    1、介绍原型/原型链/构造函数/实例/继承 构造函数:用new 操作后面的函数,即便是空函数,结果生成一个实例原型...

  • 原型链继承

    构造函数的prototype属性 实例和构造函数和原型父构造函数的实例作为子构造函数prototype属性,则实现...

网友评论

      本文标题:JS构造函数原型与实例的思考

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