You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

类字段、绑定方法与非绑定方法的内存分配差异疑问

类方法的内存分配对比

基础前提

类字段(箭头函数形式)定义在实例而非原型上,每次创建实例都会生成新的函数引用并分配新闭包,相比普通非绑定方法会占用更多内存。

各类方法的内存表现

1. 非绑定方法(unboundMethod)

这类方法挂载在类的原型上,所有实例共享同一个函数引用,不会为每个实例单独分配内存,是三者中内存占用最低的。

2. 箭头函数类字段(classField)

每个实例创建时,都会生成一个全新的箭头函数实例,同时由于闭包会捕获当前实例的上下文,每个实例都持有独立的函数引用和闭包,内存占用较高。

3. 绑定方法(boundMethod)

在构造函数里通过bind(this)生成的绑定方法,本质是每次实例化都会创建一个新的绑定函数对象。这个绑定函数会保留对原型上原方法的引用,同时固定了当前实例的this上下文。
它的内存占用和箭头函数类字段基本处于同一量级——因为两者都是为每个实例单独创建新的函数对象,都会占用实例级别的额外内存。唯一的细微差异可能来自闭包捕获的具体内容,但从整体内存开销来看,二者没有显著区别。

总结

  • 非绑定方法:原型共享,内存占用最低
  • 箭头函数类字段:实例独有,内存占用高
  • 绑定方法:实例独有,内存占用与箭头函数类字段接近

内容的提问来源于stack exchange,提问作者gacat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:43:50