jQuery在不造成全局冲突的情况下使用$别名

原创
2014/03/21 09:45
阅读数 144

问题

你希望使用快捷方式$来代替全局命名空间名称jQuery的名称,而又不用担心会造成全局冲突

解决方案

在这里的解决方案是创建一个匿名的自调用函数,将jQuery对象传递给这个函数,然后将$字符当做指向jQuery对象的一个参数。 例如:所有的jQuery代码可以封装在如下的自调用函数中:

<!-- lang: js -->
(function($){//使用$参数创建私有作用域的函数
    //私有作用域和$的使用无须担心抽鞥图
})(jQuery);//调用匿名函数并将其传递给jQuery对象

讨论

实际上,这里做的就是将jQuery的全局对象引用传递给一个创建私有作用域的函数。如果没有这么做,而是直接在全局作用域内使用简写的$别名,就必须假定包含在HTML文档中的其他脚本(或者未来包含的脚本)都没有使用$字符,这是有一定风险的。当你能够创建私有作用域,何必去冒险呢?

这样做的另一个好处是包含在匿名的自调用函数中的代码将会运行在自己的私有作用域中。可以确信,在该函数中放置的任何内容都绝不会和全局作用域中编写的其他JavaScript代码有冲突,为什么要冒着冲突的风险呢?你要做的仅仅是创建一个私有作用域罢了!

有关匿名函数和私有作用域,请看私有作用域的介绍

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部