• 一个拳王小游戏


    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

  • 相关阅读:
    Leetcode 1349 参加考试的最大学生数
    卡特兰数小结
    Leetcode 76 最小覆盖字串 (滑动窗口)
    Leetcode 5331.跳跃游戏
    实现对properties文件的有序读写
    Android日志框架darks-logs使用教程
    Android入门-Service-start,end,bind,unbind之间的区别
    Android实用代码七段(一)
    [转帖]自动调整TextView字体大小以适应文字长度
    apk,task,android:process与android:sharedUserId的区别
  • 原文地址:https://www.cnblogs.com/esZhang/p/5296207.html
Copyright © 2020-2023  润新知