Показать сообщение отдельно
  #4 (permalink)  
Старый 28.08.2013, 14:49
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Переписал так:
var Class = (function() {

	var constructor = function( options ) {

		if( typeof options['extends'] != 'undefined'  ) {
			var parent = options['extends'].prototype;
		}

		var __constructor = options.hasOwnProperty('constructor') ?
			options.constructor : (parent ? function() {
			parent.constructor.apply( this, arguments );
		} : function() {});


		var constructor = function() {

			if (options.defaults) {
				for (var i in options.defaults) {
					this[i] = options.defaults[i];
				}
			}

			__constructor.apply(this,arguments);
		}




		if( parent ) {
			var fn = function() {};
			fn.prototype = parent;
			constructor.prototype = new fn();
			constructor.prototype.constructor = constructor;
		}

		if( options.static ) {
			for( var i in options.static )
				constructor[i] = options.static[i];
		}

		for( var i in options )
			if( i != 'static' && i != 'constructor' && i != 'extends' )
				constructor.prototype[i] = options[i];


		constructor.extend = function( options ) {

			options['extends'] = this;

			return new Class( options  );
		}

		return constructor;
	}


	return constructor;

})();


Удивительные результаты. В серверной ОС в IE8 не работает, а в обычной XP на том же браузере работает. Разве IE отличается в серверной и не серверной ОС?
Ответить с цитированием