Jika Anda tidak memiliki perilaku yang terkait dengan suatu objek (yaitu jika objek tersebut hanya wadah untuk data / status), saya akan menggunakan literal objek.
var data = {
foo: 42,
bar: 43
};
Terapkan prinsip KISS . Jika Anda tidak memerlukan apa pun selain wadah data sederhana, gunakan literal sederhana.
Jika Anda ingin menambahkan perilaku ke objek Anda, Anda dapat menggunakan konstruktor dan menambahkan metode ke objek selama konstruksi atau memberikan prototipe kelas Anda.
function MyData(foo, bar) {
this.foo = foo;
this.bar = bar;
this.verify = function () {
return this.foo === this.bar;
};
}
// or:
MyData.prototype.verify = function () {
return this.foo === this.bar;
};
Kelas seperti ini juga bertindak seperti skema untuk objek data Anda: Anda sekarang memiliki semacam kontrak (melalui konstruktor) properti apa yang diinisialisasi / berisi objek. Literal gratis hanyalah gumpalan data yang tidak berbentuk.
Anda mungkin juga memiliki verifyfungsi eksternal yang bekerja pada objek data lama biasa:
var data = {
foo: 42,
bar: 43
};
function verify(data) {
return data.foo === data.bar;
}
Namun, ini tidak menguntungkan sehubungan dengan enkapsulasi: Idealnya, semua data + perilaku yang terkait dengan suatu entitas harus hidup bersama.