首页 > 代码库 > js框架设计1.1命名空间笔记
js框架设计1.1命名空间笔记
借到了司徒正美的写的js框架设计一书,司徒大神所著有些看不太懂,果然尚需循序渐进,稳扎js基础之中。
第一张开篇司徒阐述了种子模块的概念
种子模块亦为核心模块,框架最先执行模块,司徒见解应包含:对象扩展、数组化,类型判定,简单事件的绑定和写在,无冲突处理,模块加载与domReady。应具有扩展性、常用、稳定等特点。
1.1 命名空间
一观各大框架,基本是定义一个全局变量作为命名空间,如Ext的Ext等,大体抽象取例为:
if(typeof(Ten)===‘undefined‘){ Ten={}; Ten.Function = {}; Ten.JSONP = new Ten.Class();}
为了能够让几个库的命名能够共存,大家不抢着用‘$‘,jquery有解决这种冲突的代码写法:
var _jQuery = window.jQuery;// 初始化jquery之前保存window.jQuery。_$ = window.$//先把可能存在别的要用$符号的框架 用同名变量保存起来 jQuery.extend({ noConflict: function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }});
这样就可以多库共存了 ,但是ext等其他框架就无法这样子做了。
淘宝UED对这个的讲解如下:http://ued.taobao.com/blog/2013/03/jquery-noconflict/
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。