Javascript数组访问(以字符串文字作为键)-空间复杂度

时间:2019-05-23 10:02:39

标签: javascript arrays object ecmascript-6 heap-memory

样本对象:

const myArray = {'attributes':{ 'fullName': 'Foo Bar'};

在代码审查期间,我发现一个键(字符串类型)被用于访问多个功能的对象。 现在我的问题是,我们是否应该使用字符串文字作为键直接访问对象,例如myArray['attributes']['fullName'] 或改为使用常量,例如:

const ATTRIBUTES = 'attributes';
const FULLNAME = 'fullName';
someVar = myArray[ATTRIBUTES][FULLNAME];

据我所知,后一种方法更好,因为它只保留一个内存块。 但是我的朋友有不同的看法,他告诉我们如果我们使用字符串文字作为键,那么这对内存不会有任何影响。

现在,我很困惑,不知道哪种方法更好。 有人可以帮我理解哪一个更好的解释吗?

3 个答案:

答案 0 :(得分:1)

这样的事情不会影响性能。我认为第二个选项也不太可读。

答案 1 :(得分:0)

我愿意

myArray.attributes.fullName

因为它显示了编译器使用常量作为值,而不是在结构旨在动态使用的情况下使用brwacket表示法。

答案 2 :(得分:0)

我不了解内存,我使用的是第一个选项,但是如果更改了密钥,我将不得不在多个地方而不是一个地方进行修改,因此对于代码重取来说并不是很好< / p>