Javascript 对象的部分与单独的对象

Javascript 对象的部分与单独的对象,javascript,Javascript,使用包含某些内容的对象有什么好处,比如 var cheese = {color: "bleu", smell: "bad", holes: false}; 与存储类似数据的单独对象不同,如 var cheeseColor = "bleu"; var cheeseSmell = "bad"; var cheeseHoles = false; 我知道在原型和构造函数方面有更高层次的好处,但是对于一个简单的任务来说,它会有显著的不同吗?1。)在我看来,最大的好处是动态变量处理 假设您有一个对象,但

使用包含某些内容的对象有什么好处,比如

var cheese = {color: "bleu", smell: "bad", holes: false};
与存储类似数据的单独对象不同,如

var cheeseColor = "bleu";
var cheeseSmell = "bad";
var cheeseHoles = false;
我知道在原型和构造函数方面有更高层次的好处,但是对于一个简单的任务来说,它会有显著的不同吗?

1。)在我看来,最大的好处是动态变量处理

假设您有一个对象,但它是通过AJAX加载的,或者变量不是由您生成的。不管怎样,你都不知道里面有什么

对于正态变量,你就完蛋了。结束

但是对于对象,您可以询问用户想要什么,使用
[]
操作符,您可以获得该值:

var obj = {
    s: 5,
    c: "abc",
    g: /hello/g
};
function getObjectParam(name) {
    return obj[name];
}
然后打电话

getObjectParam("s")/
您将获得
5

这是一个非常简单的用例。例如,当我使用WebGL时需要存储不同的矩阵时,我通常使用此功能

2)通过他们


假设您有一个库,它需要由库的用户配置一些东西。您可以创建一个接受对象的构造函数或函数,而不是创建一个接受20个参数的构造函数或函数,并使用它的值来设置所有内容。这不仅可以让您编写一个更短的函数,还可以让用户在再次调用该函数时重用该对象。

不,对于一些变量来说,这并没有多大区别,但这完全取决于您打算如何使用该数据,这取决于您的实际需要;2) 逻辑分组如果你有100个值而不是3个值,并且你需要将整组值传递到某个地方,那么是的,使用对象会有很大的好处。当你有10个不同的奶酪时,你会怎么做?如果你想找一种既有臭味又没有洞的奶酪呢?如果你想从你的收藏中去掉一块奶酪呢?当您使用OOP时,这些事情会变得更简单。我将为这个答案添加的另一个主要好处是,当您拥有一个对象集合时。“一个对象数组比几个并行数组更容易使用。@Paulpro将其作为单独的答案发布。不管我怎么看,这将是一个很好的答案在几分钟内收集反正。