gpt4 book ai didi

javascript - 可以使用 Javascript 命名空间的函数声明吗?

转载 作者:行者123 更新时间:2023-12-03 02:54:21 25 4
gpt4 key购买 nike

每次我看到引用的 JS 命名空间都是用对象表达式实现的。如果我想在分配任何属性之前确保我的命名空间存在,我可以通过函数声明的方式实例化它吗?

例如;

function namespace() {}

对比

let namespace = {};

前者被提升,并保证我附加到命名空间的属性不会遇到“未定义”错误。

我知道它至少适用于我的基本测试,但是这有优点/缺点吗?

编辑:另一个例子:https://jsbin.com/nuquxuxinu/edit?js,console

编辑:Bergi 提供了一些很好的说明,但我仍然需要确信为什么使用函数作为命名空间是一个坏主意。

回答:由于我的问题被标记为“基于意见”,我只能推断没有技术原因说明您不应该对命名空间使用函数。

最佳答案

不,你不应该让你的命名空间对象成为函数对象,除非你需要它是可调用的。如果该函数不执行任何操作(如您的示例中所示),请不要使用函数。

提升对您来说没有任何好处。变量声明 let namespacehoisted just as well 。实际上重要的是命名空间的成员是在使用之前创建的,并且它们是通过赋值创建的。只需将它们按照正确的顺序放入文件中即可 - 首先是命名空间对象实例化,然后是该对象的属性(如果尚未将它们创建为对象文字的一部分),最后是使用命名空间的代码。

关于javascript - 可以使用 Javascript 命名空间的函数声明吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47703591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com