Показать сообщение отдельно
  #17 (permalink)  
Старый 28.08.2011, 12:50
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

ну, пожалуй, последний мой вариант:
function isEmptyObj(obj) {
		var a; for(a in obj) {return false;}
		return true;
	}

	function F(x) {
		if (this.constructor == F && isEmptyObj(this)) {
			this.x = x;
		}
		return this.x;
	}
	
	var f = new F(3), obj = {x: 5};
	
	alert(f.x); // 3
	alert(F.call(obj)); // 5
	alert(F.call(f)); // 3

Последний раз редактировалось float, 28.08.2011 в 13:03.
Ответить с цитированием