原型和原型链

是什么

  • 原型
    js中的对象都有_proto_属性,指向一个对象,该对象就是原型对象,然后对象可以从原型对象上继承到属性方法
    构造函数有一个prototype属性指向原型对象
    原型对象由constructor属性 指向构造函数
  • 原型链
    原型对象也是一个对象,也
    有_proto_属性指向它的原型对象,这样由相互关联的原型对象构成的链式结构称作原型链

补充 : js的对象分为函数对象与普通对象

除了Object的原型对象(Object.prototype)的__proto__指向null,其他内置函数对象的原型对象(例如:Array.prototype)和自定义构造函数的 __proto__都指向Object.prototype, 因为原型对象本身是普通对象。 即:

为什么

  • 节省内存
    原型对象存放实例共有的属性方法
  • 动态添加公有的属性方法
    实例可以动态的获取构造函数之后添加的原型对象上的方法属性

怎么办

搞清楚这张图

相关推荐
四谷夕雨23 分钟前
C++数据结构——红黑树
开发语言·数据结构·c++
asom2225 分钟前
Java 04 API
java·开发语言
天天打码36 分钟前
Nuxt.js一个基于 Vue.js 的通用应用框架
前端·javascript·vue.js
Dnn0139 分钟前
前端读取本地项目中 public/a.xlsx 文件中的数据 vue3
前端·javascript·vue.js·读取xlsx数据
我是苏苏1 小时前
C#基础:yield return关键字的特点
开发语言·c#
oscar9991 小时前
1.3 C++之变量与数据类型
开发语言·c++
珹洺1 小时前
C++从入门到实战(十六)String(中)String的常用接口(构造接口,析构接口,迭代器,遍历修改,容量管理与数据访问)
开发语言·c++·算法·stl
字节高级特工1 小时前
【C++】vector模拟实现
开发语言·c++
一块小砖头儿1 小时前
HTML向四周扩散背景
前端·javascript·html
CodeClimb1 小时前
【华为OD-B卷-打印文件 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od