原型和原型链

是什么

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

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

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

为什么

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

怎么办

搞清楚这张图

相关推荐
是个西兰花3 分钟前
C++11:线程库与线程安全问题
开发语言·c++
点心的游戏开发世界5 分钟前
GDScript 入门笔记(十三):字符串操作
开发语言·笔记·游戏引擎·godot
少司府14 分钟前
C++进阶:智能指针
开发语言·数据结构·c++·b树·算法·c·智能指针
matlab代码17 分钟前
基于matlab的红绿灯图像检测识别系统【源码60期】
开发语言·matlab
博界IT精灵34 分钟前
C语言中的数据类型及其转换
c语言·开发语言
软件黑马王子36 分钟前
13.缓存池优化:对象上限配置
开发语言·前端框架·c#
胖少年37 分钟前
Vitest 5 正式发布实测:Node 22 起步、expect 内联、poll 超时会挂,3.8 亿月下载量的测试框架本周换代
javascript
李迟1 小时前
Golang实践录:工程框架实践:搭建工程模板
开发语言·后端·golang
纪伊路上盛名在1 小时前
Kabsch算法的Julia实现
开发语言·算法·julia·序列分析·蛋白质·rmsd
玖玥拾1 小时前
Lua 基础语法(三) 元表 metatable、元方法、模拟面向对象
开发语言·unity·lua