有什么方法可以避免 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/