SO上可能有这个问题的副本,但我还没有找到一个专门解决我的问题的问题。
假设我正在构建一个包含以下内容之一的 Web 应用程序:
一个具有大约 100 个属性的 JS 对象,其中 5 个是子对象,可能有 10 或 15 个属性,每个属性大约 2/3 是函数。所以像:
Obj={ x:y, y:z, obj1:{ func:func(), num:1, func2:func2() }, obj2:etc }
或者几个不同的对象,其中仍然有一个具有 100 个左右的属性,但将运行函数的其他对象将存在于全局命名空间中,如下所示:
Obj={ x:y, y:z, etc:andthensome } obj1={ func:func(), num:1, func2:func2() } obj2={ etc:'I am also a larger objects with functions' }
第一种方法使全局命名空间更干净,但会导致更多的递归属性和函数搜索,并且可能会使保持this
直线更加混乱。
第二种方式更容易理解,但会在全局命名空间中添加更多对象,并且执行速度可能会更慢(这就是问题类型)。
我的问题是,使用一种或另一种方式是否有任何显着的好处 - 或者它们都是“好”,都是“坏”?
我知道与开发人员的偏好有很大关系,所以用另一种方式问类似的问题——更接近我真正想知道的:
当使用许多较小的对象,或者一个或几个具有大量子对象和功能的大型对象等时,性能是否会受到更大的影响?