有什么方法可以避免Javascript中的变量/函数冲突(不使用jQuery插件)?我想创建自己的新功能,但希望避免冲突。
我认为使用函数范围(仅用于范围的函数)是一种方法。还有什么其他可能性?
另外,当你将函数包装起来以避免冲突时,你如何从外部实际访问它?
我正在寻找基本的例子。
答案 0 :(得分:1)
如果只将方法附加到将调用它们的其他对象,则可以将代码包装在一个立即调用的函数表达式(IIFE)中,以分配方法而不创建任何新的全局对象或属性。此策略对于附加侦听器很有用,其中变量使用闭包共享到IIFE的执行上下文而不是全局上下文,并且由于它们附加到已存在于执行上下文中的对象,因此可能没有其他全局对象或变量
但是,这些功能仍然可以访问全局功能。
第二种策略是创建一个命名对象,并将所有方法作为属性附加到该对象。您还可以将值作为对象的属性或通过IIFE分配的函数内的闭包共享。
实际上,在所有全局变量上适当选择的随机前缀对于避免名称冲突同样有用,但它并不受欢迎。