我应该在 Javascript 中使用多个变量还是单个对象?
Should I use multiple variables or a single object in Javascript?
如果我想存储多个相互关联的值,我应该使用多个变量还是单个对象?哪个效率更高?
注意:这些变量是在 IIFE 中定义的,因此它们不是全局变量。
示例:
// Option 1
let value1 = "Value 1";
let value2 = 2;
let value3 = true;
// Option 2
let value = {
"1": "Value 1",
"2": 2,
"3": true
};
// Which one is more efficient?
编辑:OP 实际上将这些变量放在一个立即调用的函数中,并且函数已经是一个对象,因此只需将它们放在那里。
原回答:
简而言之,对象。
您是否将变量定义为全局变量?
Global variables clutter up the global namespace and are slower to look up than local variables.
自从您使用 let
以来,没有变量提升并且您的变量具有块范围,趋于更加整洁。任何不同于数组和全局(局部块除外)的执行上下文实际上都是一个对象。因此,根据执行上下文,在整洁的执行上下文中,如函数、闭包、"class"(ES6,或用作 类 的函数)的实例,你已经有了你想要的整洁。函数和类,扩展对象因此是对象,继承Object.prototype.
Object.prototype 在处理数据时很有用,例如 Object.assign() 对于浅层复制和合并很有用。
您可以使用 Object.keys() 和 Object.values() 轻松访问 Array.prototype,允许进行许多操作,例如映射、过滤、缩减。这是一个例子:
Object.filter = (obj, predicate) => Object.keys(obj)
.filter( key => predicate(obj[key]))
.reduce( (res, key) => (res[key] = obj[key], res), {} );
所以一般来说 Object 是一个更好的主意,可以产生更广泛的可能性。当然,您也可以在需要时创建对象。
总而言之,您的 3 个选择是数组、对象(包括函数、类、(没关系块))或全局。要避免使用全局变量,对象可能会支配数组。
选项一会更有效,因为它提供了比变量更大的灵活性,如果你想将任何值传递给任何方法,你不需要处理整个 json。确保正确命名变量。
如果我想存储多个相互关联的值,我应该使用多个变量还是单个对象?哪个效率更高?
注意:这些变量是在 IIFE 中定义的,因此它们不是全局变量。
示例:
// Option 1
let value1 = "Value 1";
let value2 = 2;
let value3 = true;
// Option 2
let value = {
"1": "Value 1",
"2": 2,
"3": true
};
// Which one is more efficient?
编辑:OP 实际上将这些变量放在一个立即调用的函数中,并且函数已经是一个对象,因此只需将它们放在那里。
原回答:
简而言之,对象。
您是否将变量定义为全局变量? Global variables clutter up the global namespace and are slower to look up than local variables.
自从您使用 let
以来,没有变量提升并且您的变量具有块范围,趋于更加整洁。任何不同于数组和全局(局部块除外)的执行上下文实际上都是一个对象。因此,根据执行上下文,在整洁的执行上下文中,如函数、闭包、"class"(ES6,或用作 类 的函数)的实例,你已经有了你想要的整洁。函数和类,扩展对象因此是对象,继承Object.prototype.
Object.prototype 在处理数据时很有用,例如 Object.assign() 对于浅层复制和合并很有用。
您可以使用 Object.keys() 和 Object.values() 轻松访问 Array.prototype,允许进行许多操作,例如映射、过滤、缩减。这是一个例子:
Object.filter = (obj, predicate) => Object.keys(obj)
.filter( key => predicate(obj[key]))
.reduce( (res, key) => (res[key] = obj[key], res), {} );
所以一般来说 Object 是一个更好的主意,可以产生更广泛的可能性。当然,您也可以在需要时创建对象。
总而言之,您的 3 个选择是数组、对象(包括函数、类、(没关系块))或全局。要避免使用全局变量,对象可能会支配数组。
选项一会更有效,因为它提供了比变量更大的灵活性,如果你想将任何值传递给任何方法,你不需要处理整个 json。确保正确命名变量。