我是 javascript 世界的新手。我正在分析此处解释的代码,以避免在编写 firefox 扩展时在全局级别造成污染。
当代码
1. // Namespace registration
2. this.ns = function(fn) {
3. var ns = {};
4. namespaces.push(fn, ns);
5. return ns;
6. };
正在执行 我不明白: 1)为什么代码在第 3 行
声明ns = {}
2)为什么代码在第 5 行返回 ns
3)哪个函数正在接收返回的 ns{} 以及该函数将如何使用它
4 ) ns{} 对于每个注册的命名空间总是相同的(?),那么为什么将与 fn 参数一起推送到命名空间数组中,然后在代码执行 fn.apply(ns) 时提供,因为它每次都会不同?
抱歉我的英语很差,并提前感谢您的帮助。