1.想实现一个拳王的小游戏
2.看了下代码 分成map.js(实现地图) timer.js(实现一个定时器 ) class.js(实现类的概念
var Class = function(){
var cache = {};//缓存对象
var create = function( fn, methods, parent ){
var _initialize, _instances = [], instance, _unique = 0;
_initialize = function( args ){
fn.apply( this, args );
//下方实例化函数的时候调用这个方法
}
if ( parent ){
_initialize.prototype = parent;
//有par参数
}
for ( var i in methods ){
// 遍历全部方法 赋值给原型对象
_initialize.prototype[ i ] = methods[ i ];
}
//xthis.animate = this.implement( 'Animate' );
_initialize.prototype.implement = function(){
//实现的方法
var fns = arguments[0].split('.'),
//第一个参数 用.来分割
args = Array.prototype.slice.call( arguments, 1 ), fn = this;
//获取全部参数
for ( var i = 0, c; c = fns[i++]; ){
//
fn = fn[ c ];
if ( !fn ){
return alert ('接口尚未实现');
}
}
return fn.apply( this, args );
}
///获取实例
var getInstance = function(){
var args = Array.prototype.slice.call( arguments, 0 );
_instances[ _unique++ ] = new _initialize( args );
return _instances[ _unique - 1 ];
//返回实例
}
var empty = function(){
// 清空方法
for ( var i = 0, c; c = _instances[i++]; ){
c = null;
}
_instances = [];
_instances.length = 0;
_unique = 0;
}
var getCount = function(){
return _unique;
}
var getPrototype = function(){
return _initialize.prototype;
}
var subClass = function( fn, methods ){
var a = Class.create( fn, methods, _instances[0] || getInstance() );
return a
}
var interface = function( key, fn ){
_initialize.prototype[ key ] = fn;
if ( _initialize ){
}
}
return {
interface: interface,
getInstance: getInstance,
empty: empty,
getCount: getCount,
getPrototype: getPrototype,
subClass: subClass,
}
}
return {
create: create,
getInstances: function(){
return _instances;
}
}
}()
2. timer.js