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

时间:2013-03-20 07:48:12

标签: javascript jquery namespaces prototypal-inheritance

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

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

另外,当你将函数包装起来以避免冲突时,你如何从外部实际访问它?

我正在寻找基本的例子。

1 个答案:

答案 0 :(得分:1)

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

但是,这些功能仍然可以访问全局功能。

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

实际上,在所有全局变量上适当选择的随机前缀对于避免名称冲突同样有用,但它并不受欢迎。