/*author:[EMAIL PROTECTED]/ function Class(Initalizer,SuperClasses) { if(!SuperClasses)SuperClasses=[]; var ret=function(){ for(var i=0;i<SuperClasses.length;i++) { SuperClasses[i].call(this); }
var $private={}; var $public=this; var $static=ret; with($static){ with($private){ with($public){ eval("("+Initalizer+").apply(this,arguments)"); } } } return this; } ret.prototype=Initalizer.prototype; for(var p in Initalizer.prototype)ret.prototype[p]=Initalizer.prototype[p]; for(var p in Initalizer)ret[p]=Initalizer[p]; for(var i=0;i<SuperClasses.length;i++) { for(var p in SuperClasses[i].prototype) { ret.prototype[p]=SuperClasses[i].prototype[p] } } return ret; } /* function alert(s) { WScript.echo(s); } */ /*********************************************** Example:public static private ************************************************/ var test1=new Class(function(){ //v1 is public $public.v1=1; //v2 is private $private.v2=2; //define public variable with this this.vv1=2; //public function member $public.show=function(){ //visit public and private variable alert(v1); alert(v2); } $public.set_static=function(v){ $static.v3=v; } }); var obj=new test1(); //visit public variable alert(obj.v1); alert(obj.vv1); //try to visit private variable alert(obj.v2); //call public member function obj.show(); //set static variable obj.set_static(10); //visit static variable from class alert(test1.v3); /*********************************************** Example:multi-inherit ************************************************/ var parent=function(){this.v4=6}; parent.prototype.v5=1000; var test2=new Class(function(){ $public.show2=function(){ alert(this.v1); alert(v4); alert(v5); } },[test1,parent]); var obj=new test2(); obj.show2(); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---