<p>varClass=function(parent){</p><p>varklass=function(){</p><p>this.init.apply(this,arguments);</p><p>};</p><p>klass.prototype.init=function(){</p><p>};</p><p>//定义类的别名</p><p>klass.fn=klass.prototype;</p><p>//判断是否是集成</p><p>if(parent){</p><p>varsubclass=function(){</p><p>};</p><p>subclass.prototype=parent.prototype;</p><p>klass.prototype=newsubclass;</p><p>}</p><p>//包装函数确保他们在正确的作用于被调用</p><p>klass.proxy=function(func){</p><p>varself=this;</p><p>return(function(){</p><p>returnfunc.apply(self,arguments);</p><p>});</p><p>}</p><p>klass.fn.proxy=klass.proxy;</p><p>klass.fn.parent=klass;</p><p>klass._super=klass.__proto__;</p><p>//给类添加属性</p><p>klass.extend=function(obj){</p><p>varextended=obj.extended;</p><p>for(variinobj){</p><p>klass[i]=obj[i];</p><p>}</p><p>if(extended)extended(klass);</p><p>};//给实例添加属性</p><p>klass.include=function(obj){</p><p>varincluded=obj.included;</p><p>for(variinobj){</p><p>klass.fn[i]=obj[i]</p><p>}</p><p>if(included)included(klass)</p><p>}</p><p>returnklass;</p><p>}demo:varAnimal=newClass;</p><p>Animal.include({</p><p>breath:function(){</p><p>console.log('breath');</p><p>}</p><p>});</p><p>varCat=newClass(Animal)</p><p>vartommy=newCat;</p><p>tommy.breath()先创建了一个Animal类,然后里面有breath方法,在创建一个Cat的类继承了Animal,最后实例化一个tommy的毛,里面也有breath方法。本文由免费劳务派遣系统软件系统起航劳务派遣系统原创,转载请注明出处。</p>