js中"foo.bar"和"foo['bar']"的区别

Difference between "foo.bar" and "foo['bar']" in js

我必须理解我在新工作中获得的代码库。我可以在这里看到很多反模式,其中之一是 "god object",它包含很多东西,不同的对象一直在访问它。那是一个不同的问题,我的问题是关于这样一个事实,即一些对象使用“。”访问其成员,其他对象通过 [] 访问其成员,例如

GOD.meow.woof()

在一个源文件中

GOD['meow']["woof"]()

在另一个。

我对 javascript 的了解足够深,可以意识到两者之间没有任何区别。或者有吗? git blame 告诉我这两个来源是同一个人写的,所以它与风格无关。一方面,你对一个毫不犹豫地创造上帝对象的人有什么期望,另一方面,也许他很忙,最终没有时间偿还这个技术债务,我们永远不会知道。

有没有可能使用后一种访问方法更安全?在我发布我的内部重构忍者之前,欢迎大家提出意见。

一个常见的原因:有一个缩小器需要第二种形式才能知道它必须保留 "meow""woof" 名称。 Google Closure.

尤其方便

除此之外,没有其他原因,正如您在文档中看到的那样(使用特殊字符和动态字符串不适用于您的情况)。