Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.09.2012, 01:23
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Небольшая репозитошка
Наконец, руки дошли до слива кое-какого кода в на гитхаб. Так уж сложилось, что более-менее крупные проекты сделаны наполовину, поэтому пришлось слить всего несколько функций, которые накопал на форуме: https://github.com/finom/Functions (в каждой папке описание с js файлом). Английский знаю очень плохо (на уровне "чтоб понимали"), поэтому там может быть куча ошибок (которые с радостью исправлю).

В планах залить в этот репозиторий:
— Простейшую реализацию "классов", без сахара (все реализации, на мой взгляд, жутко перегружены, и нужна простая как пять копеек функция)
— Продолжить бороться и допилить defineProperty для ИЕ8. Возможно, даже, сделаю какое-то подобие наследования.
— Допилить эту хрень: require как в ноде и добавить сахарку. Не знаю, насколько это полезно, поэтому рассматриваю, как "захотелось сделать какую-то неведомую хрень".
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #2 (permalink)  
Старый 23.09.2012, 19:03
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Допилил классы. Самое "тяжелое" по количеству строк там — это поддержка разных аргументов.
Сообщение от Maxmaxmахimus
уже поздно бро, уже поздно)
Разница между нами в том, что я уже активно юзаю это хрень в проекте. А ты — ну сделал и сделал.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2012, 15:50
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Оставьте вы уже животных в покое! Даёшь жизненные примеры!
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2012, 16:51
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

У меня всё гораздо проще:
MyClass = Class( Parent, Constructor, prototype );


Вот такая запись:
MyClass = Class( Parent, function MyClass () {
  this.a = 3;
}, {
  method: function() {}
});


Аналогична вот такой:
MyClass = function MyClass () {
  this.a = 3;
}

MyClass.prototype = {
  method: function() {}
}

inherits( MyClass, Parent ); // самое простое наследование, которое можно найти в любом учебнике

Обычное сокращение синтаксиса, без изобретения всяких __construct__ (что это за херня вообще? Зачем эта дикая инкапсуляция?), просто возвращает констркутор.

Всяких super и другой ненужной фигни здесь нет, надо юзать apply и call. Тем более, при множественном наследовании нельзя с уверенностью сказать, где super а где не super.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #5 (permalink)  
Старый 24.09.2012, 16:58
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Maxmaxmахimus
сразу видно человек не знаком с PHP
И? Мы разве на похапэ здесь кодим?
Сообщение от Maxmaxmахimus
super нужен для доступа к перекрытому методу. и он не фигня, иначе докажи обратное.
Сообщение от Maxmaxmахimus
че за бред?
Включи логику.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #6 (permalink)  
Старый 24.09.2012, 17:06
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Maxmaxmахimus
super нужен для доступа к перекрытому методу. и он не фигня, я думал фигня это ненужная вещь, а это нужная вещь, иначе докажи обратное.
Если наследуемое свойство объекта перекрыто - значит так и должно быть. Если нужно обратиться к свойству предка - значит наследование построено неверно, либо кривая реализация у перекрывающего свойства (это относится только к методам).
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #7 (permalink)  
Старый 24.09.2012, 17:09
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Перечитай мой коммент ещё несколько раз.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #8 (permalink)  
Старый 24.09.2012, 17:11
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Maxmaxmахimus
А как у тебя реализованные статические свойства?
Так же, как и в любом конструкторе, создаётся переменная, меняется в методе, определенном в самом конструкторе. Обычная традиционная инкапсуляция.
Сообщение от Maxmaxmахimus
дело в том что интуитисно понятно что метод с этим названием вызывается при конструировании обьекта.
Ты мне как-то писал в ЛС с предложением глянуть твою функцию, я тебе сказал, что ты пытаешься реализовать ООП как в других языках. Сейчас я в этом убедился, ты пытаешься сделать "как в похапэ".
Сообщение от Maxmaxmахimus
я не понял, у меня если родительского метода с таким именем нет то super === undefined , включая логику не понял зачем нам знать что супер а что не супер? я даже предложения если честно не понял вот и написал что бред. Напиши другими словами.
Ты наверно не понял, что я имею в виду под множественным наследованием. Имеется в виду, что один класс наследует сразу несколько, а не один.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #9 (permalink)  
Старый 24.09.2012, 17:29
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Maxmaxmахimus
То есть допустим я должен в любой момент узнать сколько у меня котов например.
Ну вот и решай задачи с котами. Лично у меня не было задачи посчитать котов (количество экземпляров класса). А если надо будет, сделаю статичное свойство прямо в конструкторе:
MyClass.num = 0;
Да и вообще, приватное свойство — это то свойство, которое доступно экземпляру (каждому своё), а не всем экземплярам сразу.
Сообщение от Maxmaxmахimus
Что именно я пытаюсь сделать как в PHP прости? И что именно я пытаюсь сделать как в других языках?
super и какой-то __construct__.
Сообщение от Maxmaxmахimus
типа цепочка?
Нет, не цепочка.

Где-то было видео с какой-то русскоязычной конференции, где человек объяснял суть ООП в яваскрипте и описывал принцип копирования, в противовес наследованию.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #10 (permalink)  
Старый 24.09.2012, 17:30
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

http://vimeo.com/33393795 а вот и оно.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Небольшая помощь - не бесплатно, конечно. infirmamoriendum Работа 17 12.07.2012 01:55
Небольшая помощь - не бесплатно, конечно. infirmamoriendum Общие вопросы Javascript 9 09.07.2012 11:35
Нужна небольшая программа. Сегодня :) danilalomaster Работа 1 04.01.2010 23:58
Есть небольшая работа для пишущего на javascript. Trooper Работа 0 30.04.2009 08:57
небольшая работа - интерфейс в ява скрипте :) int9 Работа 0 08.12.2008 22:51