Edgar Hoo
曾经这样写过:
var readyFunc = [
function fn1(){}, //功能1
function fn2(){}, //功能2
function fn3(){} //功能3
];
$E.onDOMReady(function(){
for ( var i = 0, len = readyFunc.length; i < len; i++ ){
try {
readyFunc[i]();
} catch(e) {
if ( Ali.isDebug ){
console.info( 'Error at No.' + i + '; ' + e.name + ':' + e.message );
}
} finally { continue; }
}
});
也这样写过:
(function( NS ){
NS.xxx = {
init: function(){
this.fn1();
this.fn2();
this.fn3();
},
fn1: function(){}, //功能1
fn2: function(){}, //功能2
fn3: function(){} //功能3
};
$E.onDOMReady(function(){
NS.xxx.init();
}
})( NameSpace );
后来:
(function( $, NS ){
var ModName = { //功能1
init: function(){
this._fn1();
this._fn2();
},
_fn1: function(){},
_fn2: function(){}
};
NS.PageContext.register( 'mod-name', ModName );
})( jQuery, NameSpace );
至此,已有一定的风格累积
再后来
从前端质量角度看,这并不是一个成功的项目,但它的复杂程度刚好够我去思考js的写法
画报编辑页现状:
merge.js //出口文件
base.js //画报实例,全局标记变量
util.js //公共方法
upload.js //图片上传相关功能
popup.js //浮出层相关功能
submit.js //表单提交相关功能
done.js //页面初始化、功能执行
通过 FE.info.admin.editpictorial 这个命名空间传递数据
这个现状令人非常不满意!
同时
var checkSignIn = { //功能1
init: function(){ this._fn(); },
_fn: function(){ register( [ _addTip ] ); }
};
var changeDone = { //功能2
init: function(){ this._fn(); },
_fn: function(){}
};
var _addTip = { //功能3
init: function(){}
};
register( [ checkSignIn, changeDone ] );
然后
Node.js -> CommonJS
它试图打造JavaScript生态圈
它制定了一系列的API规格
其实我想要的是一种书写风格,而不是框架/库
最后
经过一天时间
HexJS诞生
HexJS只符合一部分CommonJS的Modules/1.1.1规范
via HexJS Manual
module -> 块 -> 积木 -> 蜂窝 -> 六边形 -> Hexagon -> Hex