値とそれを更新するための関数を作る時よくやるやつ

const values = []
const append = (data) => {
if (data.type === 0) {
values.push(data.value)
}
}

変数と関数をフラットにおいてる

クラス好きな人ならクラス化しそう

class X {
values = []
append(data) {
if (data.type === 0) {
this.values.push(data.value)
}
}
}
const x = new X()

一回限りなので即時インスタンス化して

const x = new class {
values = []
append(data) {
if (data.type === 0) {
this.values.push(data.value)
}
}
}

こうすると append を渡すときに this のコンテキストが消えるので bind やアロー関数でラップが必要になる
使う側で気にしなくていいようにプロトタイプじゃなくてインスタンス自身に関数を入れる

const x = new class {
values = []
append = (data) => {
if (data.type === 0) {
this.values.push(data.value)
}
}
}

これならもうクラスの必要性がないのでただのオブジェクトにして

const x = {
values: [],
append: (data) => {
if (data.type === 0) {
x.values.push(data.value)
}
},
}