Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.12.2012, 23:00
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

Сообщение от melky
навскидку, instanceof не работает ...
работает (кэп подсказывает что это не функция класс, это примерно то как она устроенна, на функции класс все работает и еще куча ништяков, как мы помним, тут я пытался опсиать лишь логику того как она работает, не затрагивая то как там протектед от приват отличаются и прочее)
Ответить с цитированием
  #12 (permalink)  
Старый 15.12.2012, 00:05
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

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

все ради того чтобы писать не (как в педыдущих версиях)

patent.run.apply(this, arguments);

а

this.super();



п.с. к слову, в оригинальной версии работает даже
new Cat instanceof Cat // true
new Cat instanceof Animal // true
new Cat instanceof Class // true

и
Class.prototype.q = 11
new Cat().q // 11


и все это с поддержкой ie 6

Последний раз редактировалось godofjavascript, 15.12.2012 в 00:20.
Ответить с цитированием
  #13 (permalink)  
Старый 15.12.2012, 00:41
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от godofjavascript
и все это с поддержкой ie 6
когда ж этот браузер сдохнет..
Ответить с цитированием
  #14 (permalink)  
Старый 15.12.2012, 09:23
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

если бы не ишаки то добавил бы фиксированный this и define property

а вообще официально можно поддерживать только текущую и предыдущую версии чего-либо.. то есть щас ишак 10 и 9, 8 уже можно больше не пддерживать и посылать всех нахуй.
Ответить с цитированием
  #15 (permalink)  
Старый 15.12.2012, 09:28
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

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

Иначе мы не сможем сделать нормальное наследование. Например:
function Button (){
    document.createElement('div')
}

function Toggle (){
   /* бла бла бла преключатель на основе кнопки */ 
}
Toggle.prototype = new Button;


ТАК ШТОЛЕ НАМ НАСЛЕДОВАНИЕ ДЕЛАТЬ? Вот и я про то, конструктор должен быть методом (в нашем случае это протектед метод __construct который наследуется и скрытый)


А так же затем чтобы можно было удобно обращаться к перекрытым родительским методам через this.super().

а не так :

this.run = function(){
  Object.getPrototypeOf(this).run.apply(this,arguments);
  alert('...and jump')
}


все, больше у этой байды назначений нет. если вы не пользуете наследование в своих проектах то Class и нахуй не нужна.

И вообще, для тех кто не понимает что такое ооп и что такое классы вообще, чтобы вы не плакались, замените название функции на Type.

Последний раз редактировалось godofjavascript, 15.12.2012 в 09:34.
Ответить с цитированием
  #16 (permalink)  
Старый 15.12.2012, 12:20
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
а вообще официально можно поддерживать только текущую и предыдущую версии чего-либо.. то есть щас ишак 10 и 9, 8 уже можно больше не пддерживать и посылать всех нахуй.
это только в астральном вакууме можно посылать всех.

В реальной жизни у программы есть назначение, у программы есть заказчик, и у программы есть пользователи. Требования к ПО определяет не программист, а заказчик.

заказчиков требующих поддержку олдскульных браузеров можно поделить на две категории.

Просто тупые - ты гордо говоришь что сделал, клиент идёт домой запускает XP, запускает 7й ишак с кучей плагинов на пол экрана и видит что ничего не работает. В истерике звонит тебе и начинает орать что он заплатил деньги, что вы долго долго делали и всё равно ни хуя не работает. Короче вы уроды, недоучки и дебилы в его глазах, и вообще он хочет обратно свои деньги и никогда работать с вами он больше не будет.

умные - у них есть статистика по браузерам посетителей их ресурса. И тут выясняется что допустим целевая аудитория врачи, основная ось на рабочих пк у них XP, установка программ обычно запрещена администратором компов. Получается что часть бедолаг сидит тна 7мом а то и 6м ишаке. Заказчик видит эту статистику, звонин вам и обьясняет "дык ребят я всё понимаю но я немогу позволить себе пожертвовать 20% посетителей", и ты либо отказываешся от заказа либо выполняешь его требования.

Требования определяет заказчик а ни программист. Иногда требования некорректны иногда противоречивы или невыполнимы(прим HTML5 CSS3 анимацию на 6ie). Но с требованиями нужно и можно работать, существует даже такое направление как инженерия требований, существует специальность инженер по требованиям (редко- редко). А вот посылать, просто потому что не хочется что-то делать можно только в фантазиях.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 15.12.2012 в 13:12.
Ответить с цитированием
  #17 (permalink)  
Старый 15.12.2012, 13:07
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от godofjavascript
все ради того чтобы писать не (как в педыдущих версиях)
Сообщение от godofjavascript
если вы не пользуете наследование в своих проектах то Class и нахуй не нужна.
имхо JS функциональный язык с добавлением (чуть-чуть) прототипного ООП - это стало ясно уже после JS 1.6 (reduce, maps, filters <-- Array); для текущей версии это уже очевидно - ребята даже синтаксис функций упрощают, дабы они стали похожими на лямбды:
// JS 1.5
function () { return false; } 
// JS не помню какой версии
function () false;


тем более, что на хабре начали всё чаще публиковать статьи про ФП - почему бы не перейти? кода действительно намного меньше получается.

Сообщение от DjDiablo
прим HTML5 CSS3 анимацию на 6ie
я ещё ломаю голову

fadeIn и fadeOut программируется на фильтрах - я хочу сказать, что это то же самое, что и css3 анимация.

там ещё куча фильтров, но они анимируют изменение состояния элемента, а не изменение значений свойств - так, например, в IE можно анимировать смену innerHTML, а в других браузерах придётся выёпываться, и наоборот.
Ответить с цитированием
  #18 (permalink)  
Старый 15.12.2012, 13:56
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

какой нафиг функциональный язык если "функции" в js являются объектами?
__________________
.ня
Ответить с цитированием
  #19 (permalink)  
Старый 15.12.2012, 14:25
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

Сообщение от DjDiablo
тут выясняется что допустим целевая аудитория врачи, основная ось на рабочих пк у них XP, установка программ обычно запрещена администратором компов.
то есть если у меня магазин чашек, и какие то пидоры сидят на работе (за место того чтобы работать) с ишаков и хотят заказать чашку ядолжен доплачивать верстальщикам чтобы они и ишаки поддерживали?? Ни че! Придут домой, запустят семерку и хром, и закажут чашку! Самоуважение иметь надо а не быт шлюхами.

Сообщение от DjDiablo
А вот посылать, просто потому что не хочется что-то делать можно только в фантазиях.
ну если ты шлюха, то да), то тебе придется делать все за что заплатят. даже то что ты не хочешь делать)... Ты таки прав. большинство людей шлюхи) в капитализме живем.

Сообщение от tenshi
какой нафиг функциональный язык если "функции" в js являются объектами?
забаньте его уже а

Сообщение от melky
анимировать смену innerHTML
даа, в ишаке много че напридумывали, только вот они забивали хуй на стандарты, по тому он и говно, если бы там была поддержка И стандартов И их нововведений, тогда это был бы хром)

Последний раз редактировалось godofjavascript, 15.12.2012 в 14:31.
Ответить с цитированием
  #20 (permalink)  
Старый 15.12.2012, 15:26
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от godofjavascript
в чем проблема, меня просили написать как она работает - я пишу
кто и когда, если не секрет? может приснилось ? а?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать какая функция вызывается в браузере при наведении мыши? Бобр Элементы интерфейса 6 01.10.2012 04:01
Неверно работает OnBlur и, как следствие - OnFocus motoriton Firefox/Mozilla 0 10.08.2012 09:06
как повесить на событие функция класса Hugo_O Общие вопросы Javascript 14 06.11.2010 02:09
Не работает функция из подключаемого файла evgenyan jQuery 3 28.10.2010 14:48
Ajax и три <form> не работает. Как правильно сделать листание записей из базы данных? vlad275 AJAX и COMET 2 14.12.2009 14:04