gpt4 book ai didi

javascript - 将 javascript 命名空间添加到一个巨大的项目中

转载 作者:行者123 更新时间:2023-11-30 10:12:27 25 4
gpt4 key购买 nike

我有一个巨大的项目,大约 4000 行 JavaScript。该项目从未打算在另一个项目站点中使用,它一直被计划为单边应用程序。遗憾的是,客户改变了他的意见,现在它应该与包含在同一个 singlesiteapp 中的其他 3 个项目一起运行。

现在我必须确保没有一个变量或方法可以从另一个加载的 js 代码中“意外”删除或触及,例如如果下一个项目加载为“var mPath =/NowNewPath/”,“var mPath =/MyPath”当然可以被覆盖。

如何添加以确保不会发生?添加命名空间对吗?有什么想法可以解决所有 4000 行代码的问题吗?

最佳答案

首先,将所有内容包装在 Immediately-Invoked-Function-Expression 中将所有变量包含在一个独立的范围内。

(function() {
/* all 4000 lines of code */
})();

其次,确保没有意外的全局变量 - 使用 var 关键字声明局部变量。

(function() {
/* if you see this within the 4000 lines of code */
somePath = "abc";
/* change to this */
var somePath = "abc";
})();

最后,仅公开一个(或尽可能少的)全局变量作为您的库的入口点。

/* "myLib" should be your globally-unique namespace */
myLib = (function() {
/* the 4000 lines of code */

return {
/* attach functions and variables */
somePath: somePath;
};
})();

alert(somePath); // undefined
alert(myLib.somePath); // "abc"

关于javascript - 将 javascript 命名空间添加到一个巨大的项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25739601/

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