zoukankan      html  css  js  c++  java
  • 类的创建

    /**
     * @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(){}
    })
    

      

  • 相关阅读:
    mongodb复制集配置
    replication set复制集
    CentOS 6.5下源码安装MySQL 5.6
    10个最常见的 HTML5 面试题及答案
    Javascript中document.execCommand()的用法
    javascript 准确的判断类型方法
    getUserMedia API
    javascript
    C++ 面试题
    C++
  • 原文地址:https://www.cnblogs.com/xiaohui108/p/3950448.html
Copyright © 2011-2022 走看看