一个框架的要求:
- 名字长且详细
- 跨平台
- 注释
- 简洁
- 缩进
- 分号
- 通过测试
- 高质量
命名空间
类似jQuery一样使用命名空间,而不是像prototype.js一样去污染原生的原型。
var Hash = Class.create(Enumerable,(function(){
function initialize(object){
this._object = Object.isHash(object)?object.toObject():Object.clone(object);
}
}))
辅助函数
//prototype
function $H(object){
return new Hash(object);
};
//MooTools
function $H(object){
return new Hash(object);
}
初始化
var MooTools = {
'version':'222',
'build':'%build%'
};
var Prototype = {
Version:''
};
(function(window,undefined){
var jQuery = function(selector,context){
return new jQuery.fn.init(selector,context);
}
window.jQuery = window.$ = jQuery;
})
模块化与插件
(function(global){
var turint = {
VERSION:'0.1.1',
lesson:"PART 1:library archetecture"
} ;
if(global.turing){
throw new Error("turing has already been defined");
}else{
global.turing = turing;
}
})(typeof window == "undefined"?this:window);