javascript - 避免 Javascript 中变量/函数冲突的方法(没有 jQuery 插件)

标签 javascript jquery namespaces prototypal-inheritance

有什么方法可以避免 Javascript 中的变量/函数冲突(不使用 jQuery 插件)?我想创建自己的新函数,但又想避免冲突。

我认为使用函数作用域(函数只是为了作用域)是一种方法。还有哪些可能性?

此外,当您将函数包装在某些东西中以避免冲突时,您实际上如何从外部访问它?

我正在寻找基本的例子。

最佳答案

如果您只是将方法附加到将调用它们的其他对象,则可以将代码包装在立即调用的函数表达式 (IIFE) 中以分配方法,而无需创建任何新的全局对象或属性。此策略对于附加监听器很有用,其中变量使用闭包共享到 IIFE 的执行上下文而不是全局上下文,并且由于它们附加到已存在于执行上下文中的对象上,因此可能没有额外的全局对象或变量。

尽管如此,这些函数仍然可以访问全局函数。

第二种策略是创建单个命名对象并将所有方法作为属性附加到该对象上。您还可以共享值作为对象的属性或通过 IIFE 分配的函数内的闭包。

In practice, a suitably chosen random prefix on all your global variables is just as good for avoiding name collisions, but it's not popular.

关于javascript - 避免 Javascript 中变量/函数冲突的方法(没有 jQuery 插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15517975/

相关文章:

javascript - 初学者寻求矩阵卷积的帮助

javascript - 满足以下所有示例的更经济的正则表达式 :

javascript - .droppable 函数在内部 div 中不起作用

javascript - 将父路径作为jquery中的变量

C# .NET WinForms。 Visual Studio 无法识别子文件夹中的命名空间

javascript - 无法在 AngularJs 中设置未定义的属性

javascript - 使用javascript获取所有html元素的样式属性的颜色参数值

jquery - AngularJS - 带有 jquery 函数的单元测试指令

c++ - 为什么使用 std::swap 不会隐藏外部作用域中的其他交换函数

具有动态类名的 PHP 命名空间