Цитата:
Class=function(private){
var f=function(){}
f.prototype.setPrivate=function(value){private=value}
f.prototype.getPrivate=function(){return private}
return new f
}
o1=Class(1)
o2=Class(10)
o2.setPrivate(100)
alert(o1.getPrivate())
alert(o2.getPrivate())
И это основы, тащемта. |
Ну то ест нормально - никак. Ну я так и сказал. Мог бы и не распинаться тут :(
|
Цитата:
|
Цитата:
|
Цитата:
|
Все твои примеры годятся только на хелло ворлд
|
Цитата:
|
Наследование. Instanceof. Работоспособность оптимизаций js движков. Пока все. Жду
|
danik.js,
В такой вот, простой реализации тебя что не устраивает?
Class=function(){
var private
this.get=function(){alert(private)}
this.set=function(newValue){private=newValue}
}
o1 = new Class
o2 = new Class
o1.set(1)
o2.set(10)
o1.get()
o2.get()
? То что каждый экземпляр имеет свои собственные методы? За память беспокоишься? Не думаю, что в большинстве случаев это будет иметь значение. Память нынче дешевая. Что касается оптимизаций, то тут как раз наоборот. Движок любит лексические замыкания, там ссылочная прозрачность. Статика ё-ная. |
Цитата:
https://yadi.sk/i/xZaFpF6cd8fqN Сейчас не могу тебе сказать зачем оно нужно, в проекте несколько человек. Но эту часть с js на ts переписывал именно я) |
nerv_,
а, да, Вы правы. TS дает имена классам. но кроме как для логирования я не вижу этому применения. |
krutoy, а наследоваться как?
|
Цитата:
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())
|
На js дубовые геттеры оказывается, для каждой переменной нужен свой собственный. То есть эти get и set фактически ничем от вручную прописанных как у крутого не отличаются. Я уже в который раз подозреваю что не нужен ява-скрипту ООП.
|
kostyanet,
Нужен, вы просто не умеете им пользоваться. |
Да я уже два раза просил умеющих дать мастер-класс на 10 строк и два раза обломился. Так что похоже не я один такой.
|
Кстати тема, то есть subj, просто оксюморон. Как граматно создать...
|
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,
Откройте глаза:) Там показано наследование. Или вы какую-то конкретную фичу имеете в виду. Поясните. Вы хотите чтобы приватная переменная наследовалась, или чо? тогда какая она нахер приватная. |
Цитата:
Но если ты будешь совать все в конструктор, то наследование теряется.. Если же в прототипы, то тогда и нет доступа к приватным данным не открывая их наружу через какие-то там методы. |
Цитата:
|
Цитата:
// это твой класс, как бы с приватными переменными
var instance = new YourClass;
// а вот что я делаю с экземпляром твоего класса
// теперь приватную переменную я буду хранить тут, вытащил наружу
var private = instance.get();
// переопределяем метод получения значения
instance.get = function() {return private;}
// переопределяем метод установки значения
instance.set = function(value) {private = value;}
Теперь видно что вся работа с переменной проходит через переопределенные методы, а это значит что приватности тут ноль... Ибо я могу легко сломать функционал класса. |
Цитата:
|
devote,
Ты переопределил методы, а не саму переменную. Никто не говорил, что методы будут приватными, об этом речь не шла. |
devote,
И нахрен вообще нужен этот гемор, мы что, в шпионов играем чтоли? |
Цитата:
|
Цитата:
http://javascript.ru/forum/misc/5208...tml#post344241 |
Цитата:
|
Цитата:
|
krutoy,
ну например тема про мерж нескольких объектов. Или я на днях читал твою перепалку с bes. Не помню в какой теме, но ты написал что он не прав а тебе некогда. И больше не писал туда) |
krutoy,
значит с тем что ты пишешь ересь и материшся - ты согласен, тебя тока слив задел?))) |
tsigel,
Там не было никаких сливов, просто ты ни*янепонел. С бесом, там вообще ЕМНИП, про expressions было. У меня не было желания штудировать кучу х*ты, чтобы "найти" ответ на элементарнейший вопрос. Я не собираюсь кого-то в чем то убеждать. |
krutoy,
ну-ну |
tsigel,
Ты вот скажи, ты, например, сейчас до варов моих дое*лся. Ты можешь сказать, внятно, без шелухи и отмазок, зачем нужны вары в глобальной области, за исключением ноды и ее модулей. Какой смысл с точки зрения семантики имеют? Вангую твой очередной слив. |
Цитата:
По стандарту языка вар следует писать, если его не писать в строгом режиме будет ошибка. Просто для понижения порога вхождения в язык сделали чтобы браузер чистил "лажу" за говнокодерами которые не пишут так как того требуют стандарты :) Типа тебя :) И ещё ты всевремя редактируешь свои записи. Это тоже раздражает. Ладно бы ты ошибки синтаксические/грамматические правил. Тыж переписываешь почти. |
tsigel,
иными словами ты не знаешь? |
| Часовой пояс GMT +3, время: 09:17. |