Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免Javascript中变量/函数冲突的方法(无jQuery插件)_Javascript_Jquery_Namespaces_Prototypal Inheritance - Fatal编程技术网

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

避免Javascript中变量/函数冲突的方法(无jQuery插件),javascript,jquery,namespaces,prototypal-inheritance,Javascript,Jquery,Namespaces,Prototypal Inheritance,在Javascript中避免变量/函数冲突的方法有哪些(不使用jQuery插件)?我想创建自己的新函数,但希望避免冲突 我认为使用函数作用域(函数只是为了作用域的目的)是一种方法。其他的可能性是什么 另外,当您将函数包装在某种东西中以避免冲突时,您实际上如何从外部访问它 我正在寻找基本示例。如果您只将方法附加到将调用它们的其他对象,则可以将代码包装在立即调用的函数表达式(IIFE)中,以分配方法,而无需创建任何新的全局对象或属性。此策略对于附加监听器非常有用,在监听器中,变量是使用IIFE的执行

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

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

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


我正在寻找基本示例。

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

不过,这样的函数仍然可以访问全局函数

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


实际上,在所有全局变量上选择适当的随机前缀同样有助于避免名称冲突,但并不流行。

jQuery插件(或任何插件)对命名冲突都没有帮助。请提供这两种方法的非常基本的示例。有关iLife的更多信息,包括代码示例,请看一看-特别是标记为“模块模式”的部分