0

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

我认为使用函数作用域(仅用于作用域的函数)是一种方法。其他的可能性是什么?

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

我正在寻找基本的例子。

4

1 回答 1

1

如果您只是将方法附加到将调用它们的其他对象,则可以将代码包装在立即调用的函数表达式 (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.

于 2013-03-20T08:21:53.950 回答