JavaScript 原型

这个图描述了构造函数,实例对象和原型三者之间的关系,是原型链的基础:

  • 实例对象由构造函数new产生;
  • 构造函数的原型属性实例对象的原型对象均指向原型
  • 原型对象中有一个属性constructor指向对应的构造函数

原型链的基础都是从上图延展的,下面再来一张完整的关系图:

一个简单的demo

javascript 复制代码
function funA(name) {
  this.name = name;
}
funA.prototype.sayHello = function () {
  return `${this.name} say hello`
}
​
const a1 = new funA()
// a1.__proto__ === funA.prototype
// funA.prototype.constructor === funA

需要注意的点:

  • Function.prototype === Function.__proto__ // true
  • 只有 Function.prototype 原型是一个 function; 其它函数的原型都是 object
  • 所有构造函数的实例 公用一个 原型对象,它自身的方法、属性不共享
  • 只有对象才有 __proto__属性
  • 只有函数才有prototype属性
  • Function 和 Object 是 object & function,它们是js框架底层自己实现
  • 理解几个关键概念:new、prototype、construtor、__proto__

原型链介绍

比较好的文章

掘金上找到一 布局比较好的图片:

当访问对象的属性或方法时,JavaScript 会:

  • 原型链的核心是通过 __proto__ 属性串联起来的,它是对象之间继承关系的 "连接线"
  • 首先在对象自身查找
  • 如果没有找到,沿着原型链向上查找
  • 直到找到属性或到达原型链末端(null)

ES6 类语法(语法糖)

javascript 复制代码
class Vehicle {
    constructor(brand, year) {
        this.brand = brand;
        this.year = year;
    }
    
    getInfo() {
        return `${this.brand} (${this.year})`;
    }
    
    start() {
        console.log(`${this.brand} starting...`);
    }
}
​
const myCar = new Car("Honda", 2021, 4);

总结

  • 构造函数 :用于创建对象的函数,通过 new 关键字调用
  • prototype:函数特有的属性,包含应该被所有实例共享的方法
  • 原型链 :对象通过 __proto__ 链接形成的继承链
  • 继承:通过设置子类 prototype 为父类实例来实现
  • ES6 class:语法糖,底层仍然基于原型继承

理解原型系统是掌握 JavaScript 面向对象编程的关键,它解释了 JavaScript 中对象如何共享方法和属性,以及继承是如何工作的。

相关推荐
前端大波7 分钟前
Sentry 每日错误巡检自动化:设计思路与上手实战
前端·自动化·sentry
Highcharts.js1 小时前
适合报表系统的可视化图表|Highcharts支持直接导出PNG和PDF
javascript·数据库·react.js·pdf
ZC跨境爬虫1 小时前
使用Claude Code开发校园交友平台前端UI全记录(含架构、坑点、登录逻辑及算法)
前端·ui·架构
慧一居士1 小时前
Vue项目中,何时使用布局、子组件嵌套、插槽 对应的使用场景,和完整的使用示例
前端·vue.js
叫我一声阿雷吧1 小时前
JS 入门通关手册(35):执行上下文、调用栈与作用域链深度解析
javascript·作用域链·js进阶·执行上下文·调用栈·变量提升·闭包原理
Можно2 小时前
uni.request 和 axios 的区别?前端请求库全面对比
前端·uni-app
M ? A2 小时前
解决 VuReact 中 ESLint 规则冲突的完整指南
前端·react.js·前端框架
Jave21083 小时前
实现全局自定义loading指令
前端·vue.js
奔跑的呱呱牛3 小时前
CSS Grid 布局参数详解(超细化版)+ 中文注释 Demo
前端·css·grid
木斯佳3 小时前
前端八股文面经大全:影刀AI前端一面(2026-04-01)·面经深度解析
前端·人工智能·沙箱·tool·ai面经