gpt4 book ai didi

javascript - 简单地访问其他命名空间的成员

转载 作者:行者123 更新时间:2023-11-30 06:49:29 25 4
gpt4 key购买 nike

我正在使用著名的模块模式来创建命名空间,但是编写 ns1.ns2.member 来访问 ns3(ns1.ns2.ns3) 的成员很麻烦。我不喜欢为此目的使用快捷方式 var(_ns2=ns1.ns2) 也 with 语句被认为是有害的,那么处理这个问题的更好方法是什么?是否可以合并 namespace 或其他范围?谢谢。

var NS1 = (function ()
{
function $(id)
{
return document.getElementById(id);
}

return {
$: $
}
})();


NS1.NS2 = function()
{
function someFunc()
{
// Do not want the below one.
NS1.$('...');
// Is there a way to access $ directly.
// without defining a variable for it here or using with statement.
}
}();

最佳答案

我真的不知道你在说什么,即使我假装我知道我也看不出“ns1.ns2.ns3”有什么不好,但这里有几个想法:

(function(tempNamespace) {
blahBlah(tempNamespace.something, tempNamespace.somethingElse);
// ...
})(ns1.ns2.ns3);

或者组合几个:

var nsCombined = $.extend({}, ns1, ns2, ns3); // jQuery

对您使用这些命名空间做什么以及我们讨论的代码量的一些描述会很有用。我发现一旦您开始使用 jQuery 之类的东西,对于大多数页面 — 即使具有相当复杂的客户端行为 — 对大型长期数据结构的需求也会大大降低。

关于javascript - 简单地访问其他命名空间的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2355693/

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