Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   private vs public (https://javascript.ru/forum/misc/29797-private-vs-public.html)

vadim5june 11.07.2012 22:40

Цитата:

Сообщение от Drimogemon (Сообщение 188174)
Создай видежты себе сам используя это и другие реализации ООП, и сравни где было удобнее.

В этом нет никакого смысла потому что у тебя нет вообще никаких средств для работы с HTML элементами

Dim@ 11.07.2012 22:56

vadim5june,
создать классы для работы с HTML :p

vadim5june 11.07.2012 23:01

Цитата:

Сообщение от Dim@ (Сообщение 188192)
vadim5june,
создать классы для работы с HTML :p

Ну так это Maximaximus должен создавать раз фреемворк пишет
а он не хочет

Dim@ 11.07.2012 23:14

vadim5june,
пускай создает=)

Drimogemon 12.07.2012 00:10

Цитата:

Сообщение от vadim5june
В этом нет никакого смысла потому что у тебя нет вообще никаких средств для работы с HTML элементами

И как это я не додумался в обертку в ООП на javascript засунуть функции для работы с HTML элементами...
Щас смотрю, и ведь действительно ни одной нет. Проглядел.., спасибо добавим.


Цитата:

Сообщение от vadim5june
Ну так это Maximaximus должен создавать раз фреемворк пишет

какой фреймворк я пишу? это идеома ООП, шаблон добавляющий удобное прототипное наследование в javascript.
каким образом это вообще должно быть связанно с чем-то кроме наследования на javascript ?

Ты вообще понимаешь что такое ООП что такое идеома и что такое паттерн и что такое фреймворк?

Drimogemon 12.07.2012 00:37

как мы понимаем суть классов это повторное использование кода, в классе Виджет я описываю логику построения всех виджетов, в дочерних классах Кнопка и Лампа, я описываю только свойственную им логику, а логику построения виджета наследую от класса Виджет. КЭП.

<body></body>
<script>
var Widget = new Class( function ( parent ) {
	this.HTMLElement = null;
	this.__construct = function ( w, h, color ) {
		this.HTMLElement = document.createElement( 'div' );
		this.HTMLElement.style.position = 'relative';
		this.HTMLElement.style.width = w + 'px';
		this.HTMLElement.style.height = h + 'px';
		this.HTMLElement.style.backgroundColor = color;
		document.body.appendChild( this.HTMLElement );
	};
} );

var Button = new Class( Widget, function ( parent ) {
	this.action = null;
	this.onclick = function () {if ( this.action )this.action()};
	this.__construct = function ( w, h, color ) {
		parent.__construct.call( this, w, h, color );
		this.HTMLElement.onclick = this.onclick.bind( this );
	};
} );

var Lamp = new Class( Widget, function ( parent ) {
	this.state = false;
	this.onColor = '';
	this.offColor = '';
	this.toggle = function () {
		this.state = !this.state;
		this.HTMLElement.style.backgroundColor = this[this.state ? 'onColor' : 'offColor'];
	};
	this.__construct = function ( size, onColor, offColor ) {
		parent.__construct.call( this, size, size, offColor );
		this.HTMLElement.style.borderRadius = size / 2 + 'px';
		this.onColor = onColor;
		this.offColor = offColor;
	};
} );


var lamp = new Lamp( 100, '#ccc', '#444' );
var button = new Button( 100, 50, '#040' );

button.action = lamp.toggle.bind( lamp );





// собственно сама функция которая позволяет вытворять все эти чудеса
function Class( a, b ) {
	var description = b ? b : a;
	var superClass = b ? a : b;
	var constructor = function () {if ( this['__construct'] )this['__construct'].apply( this, arguments )};
	description.prototype = Object.create( superClass ? superClass.prototype : Class.base ? Class.base.prototype : Object.prototype );
	constructor.prototype = new description( description.prototype );
	return constructor;
}
</script>

vadim5june 12.07.2012 09:59

Цитата:

Сообщение от Drimogemon (Сообщение 188210)
какой фреймворк я пишу? это идеома ООП, шаблон добавляющий удобное прототипное наследование в javascript.
каким образом это вообще должно быть связанно с чем-то кроме наследования на javascript ?

Понятно... тогда интерес к теме пропал

oneguy 13.07.2012 03:50

Цитата:

Сообщение от dmitriymar
это то причём? вопрос был о приватности -возможно или нет-показал один из шаблонов,причём о наследовании в том момент речь не шла

Так я ничего не имею против вашего сообщения. Я лишь добавил своё замечание. Вы с моим утверждением-то согласны?


Часовой пояс GMT +3, время: 06:29.