类的创建

/**

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

})

  

你可能感兴趣的:(创建)