如果您没有与对象相关联的行为(即,如果对象只是数据/状态的容器),则可以使用对象文字。
var data = { foo: 42, bar: 43};运用KISS原则。如果除了简单的数据容器之外不需要任何其他内容,请使用简单的文字。
如果要向对象添加行为,则可以使用构造函数并在构造过程中向对象添加方法,或者为类提供原型。
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;};这样的类也像数据对象的架构一样工作:您现在(通过构造函数)具有某种约定(通过构造函数),该对象初始化/包含哪些属性。一个自由的文字只是数据的一个无定形的斑点。
您可能还具有一个
verify作用于普通旧数据对象的外部函数:
var data = { foo: 42, bar: 43};function verify(data) { return data.foo === data.bar;}但是,这在封装方面是不利的:理想情况下,与实体关联的所有数据和行为都应该一起生活。



