Показать сообщение отдельно
  #18 (permalink)  
Старый 09.10.2012, 17:56
Аватар для Maxmaxmахimus
司会
Отправить личное сообщение для Maxmaxmахimus Посмотреть профиль Найти все сообщения от Maxmaxmахimus
 
Регистрация: 29.02.2012
Сообщений: 198

Да а еще можно статические свойства добавлять) например так



function Class(g,h){var d=h||g,a=h?g:null,e=Class.overname||"super",f=function(){if(this.__construct__)return this.__construct__.apply(this,arguments)},i=function(){};i.prototype=a?a.prototype:Class.prototype;d.prototype=new i;f.prototype=new d(f,d.prototype);var c=f.prototype,b;for(b in c)c.hasOwnProperty(b)&&c[b]instanceof Function&&(a=d.prototype[b])&&function(b,d,a){c[a]=function(){var a=this[e];this[e]=d;var c=b.apply(this,arguments);a?this[e]=a:delete this[e];return c}}(c[b],a,b);return f};






var Cat = new Class( function ( static ) {

	// static ссылается на то, что возвращает функция Class (на то что потом кладется в Cat)
	static.count = 0; // статическое свойство count 

	this.__construct__ = function () {
		static.count++
	};
} );


// теперь в Cat лежит класс котов, и через этот класс можно получить доступ к статическим свйоствам ни создав ни одного кота

alert( Cat.count ) //0

new Cat;
new Cat;
new Cat;

alert( Cat.count ) //3

Последний раз редактировалось Maxmaxmахimus, 09.10.2012 в 18:10.
Ответить с цитированием