Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как граматно создать конструктор (https://javascript.ru/forum/misc/52088-kak-gramatno-sozdat-konstruktor.html)

tsigel 04.12.2014 00:31

nerv_,
а, да, Вы правы. TS дает имена классам. но кроме как для логирования я не вижу этому применения.

danik.js 04.12.2014 05:24

krutoy, а наследоваться как?

krutoy 04.12.2014 08:51

Цитата:

Сообщение от danik.js
а наследоваться как?

Как обычно, какие проблемы? Приватные доступны через собственные методы.
Class=function(){
   var private
   this.get=function(){return private}
   this.set=function(newValue){private=newValue}
}
Class.prototype.inc=function(){
   this.set(this.get()+1)
}
 
o1 = new Class
o2 = new Class
 
o1.set(1)
o2.set(10)
o1.inc()
o1.inc()
o2.inc()
alert(o1.get())
alert(o2.get())

kostyanet 04.12.2014 12:55

На js дубовые геттеры оказывается, для каждой переменной нужен свой собственный. То есть эти get и set фактически ничем от вручную прописанных как у крутого не отличаются. Я уже в который раз подозреваю что не нужен ява-скрипту ООП.

tsigel 04.12.2014 13:09

kostyanet,
Нужен, вы просто не умеете им пользоваться.

kostyanet 04.12.2014 13:13

Да я уже два раза просил умеющих дать мастер-класс на 10 строк и два раза обломился. Так что похоже не я один такой.

kostyanet 04.12.2014 13:23

Кстати тема, то есть subj, просто оксюморон. Как граматно создать...

tsigel 04.12.2014 13:27

var FormField = function FormField(elem){
	this.type = elem.type;
	this.def = elem.value;
	this.rules = {};		
};

FormField.prototype.validate = function() {
	value=elem.value.trim();
	if(this.type in rules) {
	  rules[type]();
	} else {
          rules.text();
	}
};

var some = new FormField(elem);


Что-то типа этого. Не очень понимаю как у вас работает валидация, но я думаю что дальше вы разберетесь.

devote 04.12.2014 19:17

Цитата:

Сообщение от krutoy
Приватные доступны через собственные методы.

А смысл тогда от такой инкапсуляции, если любой может изменить приватные значения через эти самые методы.

devote 04.12.2014 19:22

Цитата:

Сообщение от tsigel
value=elem.value.trim();

А что перед переменными оператор var уже не нужен? Вы если примеры от пользователя krutoy берете, не забывайте о том что в них полно недочетов.


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