• 类的创建


    /**
     * @description Class 构造函数
     * @function
     * @public
     */
    
    var Class = function(parent){
    	var Klass = function(){
    		this.init.apply(this,arguments)
    	}
    	
    	/* 
    		@init method
    	*/
    	Klass.prototype.init = function(){}
    
    	Klass.fn = Klass.prototype
    
    	/*
    	 * @ description 继承
    	 * @ function
    	 * @ public
    	 * @ params {Object} 父元素
    	 * 
    	 */
    	
    	if(parent){
    		var subClass = function(){}
    		subClass.prototype = parent;
    		Klass.fn = new subClass();
    	}
    
    	/*
    	 * @ description 保持上下文
    	 * @ function
    	 * @ public
    	 */
    	Klass.proxy = function(func){
    		var self = this;
    		return (function(){
    			func.apply(self,arguments)
    		})
    	}
    
    	/*
    	 * @ description 
    	 */
    	Klass.extend = function(obj){
    		var extend = obj.extend
    		for(var i in obj){
    			if(obj.hasOwnProperty(i)){
    				Klass[i] = obj[i]
    			}
    		}
    		extend && extend(Klass)
    	}
    
    	Klass.include = function(obj){
    		var included = obj.included
    		for(var i in obj){
    			if(obj.hasOwnProperty(i)){
    				Klass.fn[i] = obj[i]
    			}
    		}
    		included && included(Klass)
    	}
    
    
    	Klass.fn.proxy = Klass.proxy;
    
    	return Klass
    
    }
    
    /*
    	创建实例 Button
     */
    var Button = new Class();
    Button.include({
    	init : function(element){
    		this.element = $('#aa')
    		this.element.click(this.proxy(this.click))
    	}, 
    	click : function(){}
    })
    

      

  • 相关阅读:
    SpringBoot与(Security)安全
    SpringBoot任务
    SSM框架整合思路
    数据库连接池 Druid和C3p0
    YAML语法:
    Mbatis使用
    为什么要使用Mybatis-现有持久化技术的对比
    SpringMVC拦截器
    ARC109D
    一类求斯坦纳树大小的问题
  • 原文地址:https://www.cnblogs.com/xiaohui108/p/3950448.html
Copyright © 2020-2023  润新知