14.12.2012, 23:00
|
Профессор
|
|
Регистрация: 11.12.2012
Сообщений: 265
|
|
Сообщение от melky
|
навскидку, instanceof не работает ...
|
работает (кэп подсказывает что это не функция класс, это примерно то как она устроенна, на функции класс все работает и еще куча ништяков, как мы помним, тут я пытался опсиать лишь логику того как она работает, не затрагивая то как там протектед от приват отличаются и прочее)
|
|
15.12.2012, 00:05
|
Профессор
|
|
Регистрация: 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.
|
|
15.12.2012, 00:41
|
|
:-/
|
|
Регистрация: 28.09.2009
Сообщений: 1,126
|
|
Сообщение от godofjavascript
|
и все это с поддержкой ie 6
|
когда ж этот браузер сдохнет..
|
|
15.12.2012, 09:23
|
Профессор
|
|
Регистрация: 11.12.2012
Сообщений: 265
|
|
если бы не ишаки то добавил бы фиксированный this и define property
а вообще официально можно поддерживать только текущую и предыдущую версии чего-либо.. то есть щас ишак 10 и 9, 8 уже можно больше не пддерживать и посылать всех нахуй.
|
|
15.12.2012, 09:28
|
Профессор
|
|
Регистрация: 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.
|
|
15.12.2012, 12:20
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Цитата:
|
а вообще официально можно поддерживать только текущую и предыдущую версии чего-либо.. то есть щас ишак 10 и 9, 8 уже можно больше не пддерживать и посылать всех нахуй.
|
это только в астральном вакууме можно посылать всех.
В реальной жизни у программы есть назначение, у программы есть заказчик, и у программы есть пользователи. Требования к ПО определяет не программист, а заказчик.
заказчиков требующих поддержку олдскульных браузеров можно поделить на две категории.
Просто тупые - ты гордо говоришь что сделал, клиент идёт домой запускает XP, запускает 7й ишак с кучей плагинов на пол экрана и видит что ничего не работает. В истерике звонит тебе и начинает орать что он заплатил деньги, что вы долго долго делали и всё равно ни хуя не работает. Короче вы уроды, недоучки и дебилы в его глазах, и вообще он хочет обратно свои деньги и никогда работать с вами он больше не будет.
умные - у них есть статистика по браузерам посетителей их ресурса. И тут выясняется что допустим целевая аудитория врачи, основная ось на рабочих пк у них XP, установка программ обычно запрещена администратором компов. Получается что часть бедолаг сидит тна 7мом а то и 6м ишаке. Заказчик видит эту статистику, звонин вам и обьясняет " дык ребят я всё понимаю но я немогу позволить себе пожертвовать 20% посетителей", и ты либо отказываешся от заказа либо выполняешь его требования.
Требования определяет заказчик а ни программист. Иногда требования некорректны иногда противоречивы или невыполнимы(прим HTML5 CSS3 анимацию на 6ie). Но с требованиями нужно и можно работать, существует даже такое направление как инженерия требований, существует специальность инженер по требованиям (редко- редко). А вот посылать, просто потому что не хочется что-то делать можно только в фантазиях.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 15.12.2012 в 13:12.
|
|
15.12.2012, 13:07
|
sinistral
|
|
Регистрация: 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, а в других браузерах придётся выёпываться, и наоборот.
|
|
15.12.2012, 13:56
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
какой нафиг функциональный язык если "функции" в js являются объектами?
__________________
.ня
|
|
15.12.2012, 14:25
|
Профессор
|
|
Регистрация: 11.12.2012
Сообщений: 265
|
|
Сообщение от DjDiablo
|
тут выясняется что допустим целевая аудитория врачи, основная ось на рабочих пк у них XP, установка программ обычно запрещена администратором компов.
|
то есть если у меня магазин чашек, и какие то пидоры сидят на работе (за место того чтобы работать) с ишаков и хотят заказать чашку ядолжен доплачивать верстальщикам чтобы они и ишаки поддерживали?? Ни че! Придут домой, запустят семерку и хром, и закажут чашку! Самоуважение иметь надо а не быт шлюхами.
Сообщение от DjDiablo
|
А вот посылать, просто потому что не хочется что-то делать можно только в фантазиях.
|
ну если ты шлюха, то да), то тебе придется делать все за что заплатят. даже то что ты не хочешь делать)... Ты таки прав. большинство людей шлюхи) в капитализме живем.
Сообщение от tenshi
|
какой нафиг функциональный язык если "функции" в js являются объектами?
|
забаньте его уже а
Сообщение от melky
|
анимировать смену innerHTML
|
даа, в ишаке много че напридумывали, только вот они забивали хуй на стандарты, по тому он и говно, если бы там была поддержка И стандартов И их нововведений, тогда это был бы хром)
Последний раз редактировалось godofjavascript, 15.12.2012 в 14:31.
|
|
15.12.2012, 15:26
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от godofjavascript
|
в чем проблема, меня просили написать как она работает - я пишу
|
кто и когда, если не секрет? может приснилось ? а?
|
|
|
|