分两个方面 如何不覆盖别人的 不要使用全局变量 如果必须要用,不用会死 如果在amd/cmd下,那最好,不需要任何全局变量,用define来暴露你的接口 如果你是在写框架,探测一下如果是amd/cmd环境,那也别用全局变量,用define。如果不是,那么用你的框架的名字(别太普通)写在全局,但同时别忘了保留原来的值,提供noConflict方法 如果你在写业务,那么不妨用一个公司名之类的名字做全局变量,然后其他所有东西尽可能的挂进去 如何不被别人的覆盖 用IIFE建立自己的作用域,依赖别人的全局变量的时候小心管理,最好通过var Name=window.Name;或者(function(Name){})(Name)之类的形式引用。同时具有加速/标记依赖了全局变量/方便对方全局变量修改等各种好处
分两个方面
如何不覆盖别人的
define
来暴露你的接口define
。如果不是,那么用你的框架的名字(别太普通)写在全局,但同时别忘了保留原来的值,提供noConflict
方法如何不被别人的覆盖
用IIFE建立自己的作用域,依赖别人的全局变量的时候小心管理,最好通过
var Name=window.Name;
或者(function(Name){})(Name)
之类的形式引用。同时具有加速/标记依赖了全局变量/方便对方全局变量修改等各种好处