gpt4 book ai didi

javascript - 引用要在 javascript 中扩充的对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:39:16 24 4
gpt4 key购买 nike

我正在尝试将所有内容本地化到 javascript 中的命名空间。所以我有遵循命名约定的对象,例如:

我的应用程序.utilities.file.spinner

等...

我的问题是,有没有办法避免每次我想用属性或方法扩充对象时重复那个大字符串。目前我的代码看起来像这样......

myapp.utilities.file.spinner.method1 = function() { };
myapp.utilities.file.spinner.method2 = function() { };
etc.

像这样的……

spinnerPath.method1 = function()

...其中 spinnerPath 代表 myapp.utilities.file.spinner,会更好。但根据我的理解,我不能只说

spinnerPath = myapp.utilities.file.spinner

因为这将在全局空间中创建另一个对象。

谢谢

最佳答案

您使用的代码实际上不会创建一个新的对象,而只是一个引用现有对象的新全局变量。然而,它会污染全局命名空间,因此如果您希望避免这种情况,您有多种选择:

  • 您可以使用 with,但不要这样做,因为它可能会给您带来比其值(value)更大的心痛。

  • 您可以在全局命名空间之外的每个函数内创建一个速记指针变量:var s = myapp.utilities.file.spinner;,但这很烦人。

  • (可能是最佳选择)使用立即调用函数创建“私有(private)命名​​空间”:

    (function (S)  
    {
    S.method1 = function(){/*whatever*/};
    S.method2 = function(){/*whatever*/};
    })(myapp.utilities.file.spinner)

关于javascript - 引用要在 javascript 中扩充的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269516/

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