gpt4 book ai didi

javascript - 我应该使用对象字面量还是构造函数?

转载 作者:IT王子 更新时间:2023-10-29 02:44:02 29 4
gpt4 key购买 nike

我对应该用哪种方式在 javascript 中创建对象感到困惑。似乎至少有两种方法。一种是使用对象文字表示法,另一种是使用构造函数。两者之间有什么优势吗?

最佳答案

如果您没有与对象关联的行为(即,如果对象只是数据/状态的容器),我会使用对象字面量。

var data = {
foo: 42,
bar: 43
};

应用KISS principle .如果除了简单的数据容器之外不需要任何东西,请使用简单的文字。

如果您想向对象添加行为,可以使用构造函数并在构造期间向对象添加方法,或者为您的类提供原型(prototype)。

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;
};

像这样的类也可以作为您的数据对象的模式:您现在有某种契约(通过构造函数)对象初始化/包含的属性。自由文字只是无定形的数据 block 。

您还可以有一个作用于普通旧数据对象的外部verify 函数:

var data = {
foo: 42,
bar: 43
};

function verify(data) {
return data.foo === data.bar;
}

但是,这不利于封装:理想情况下,与一个实体关联的所有数据 + 行为都应该共存。

关于javascript - 我应该使用对象字面量还是构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4859800/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com