Javascript.RU

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

ssadfaf,
Тут есть ньюанс. Я писал наспех, не думал, что вам это понадобиться. Данная версия extend некорректно работает со значениями false, и приводимыми к false
extend=function(src, trg){for(var i in src) if(!trg[i]) trg[i]=src[i]}

pattern={foo: 1, bar: 2, baz: 3}
dbs={
  list: [
     {foo: 0},
     {foo: 100, bar: false}
  ]
}
 
for(var i=0; i<dbs.list.length; i++){
   extend(pattern, dbs.list[i])
}
 
for(var i=0; i<dbs.list.length; i++){
   console.log(dbs.list[i])
}
//  { foo: 1, bar: 2, baz: 3 }
//  { foo: 100, bar: 2, baz: 3 }

используйте вот эту версию
extend=function(src, trg){for(var i in src) if(!(i in trg)) trg[i]=src[i]}
Ответить с цитированием
  #12 (permalink)  
Старый 30.12.2014, 00:06
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от ssadfaf
Всё от того, что я делаю себе помощника в изучении HTML/CSS/JS, попутно изучая их. Вот такая вот рекурсия.
изначально двигался по тому же пути, попутно изобретая различные варианты представления материала (разметка и т.п.),
сейчас один проект в phpstorm голимого текста с хорошо организованной кучей файлов и каталогов
(уже мегабайт на 300 накапало, если не больше,
хорошо - условно, процесс переструктуризации бесконечный,
голимого - без разметки, кроме выделения блоков с кодом,
в целом, сложилась некоторая структура написания файлов, которая, при необходимости скриптом позволит добавить разметку)
почти каждый файл решает некоторую задачу, во главе угла идеи процедурного программирования (одни файлы решают более мелкие задачи, другие используют их для решения более крупных)
в продакшн, вероятно, не выйдет
Ответить с цитированием
  #13 (permalink)  
Старый 30.12.2014, 00:53
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от ssadfaf
Честно говоря, на данном этапе моего разумения не хватает, чтобы понять, зачем вообще нужен прототип, если всё равно приходится перебирать каждую пару ключ-значение.
Для общего понимания работы прототипов, понимания идей прототипного ООП, почитай, обзорно, что нибудь по SELF, IO, отчасти Смоллток, в контексте понимания идей позднего динамического связывания и семантики сообщений. Это очень мощная модель, на самом деле, гораздо мощней нежели "классовая" Java-like модель. Это основа языка, и, как ни парадоксально, в литературе по JS эта тема очень слабо освещена.
Ответить с цитированием
  #14 (permalink)  
Старый 30.12.2014, 07:22
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Erolast, тоже спасибо, но я сначала хочу получить базовые знания по HTML, CSS и JS, а потом уж расширять свои возможности.
Это базовые знания.
В общем-то, мой код делает то же, что и код крутого, только у меня сразу идет обертка в класс. Классы нужны, с ними при расширении структуры приложения кода придется писать меньше, при том, что на этом уровне ничего не усложняется.
Ответить с цитированием
  #15 (permalink)  
Старый 31.12.2014, 12:33
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Erolast,
Цитата:
ssadfaf, учи сразу ES6 и ES7. Это пока что неутвержденные (но близящиеся к тому) версии стандарта JS
Это какой-то почти вредный совет. Несмотря на то, что уже можно писать на ES6, всё равно нужно начинать с ES5, т.к. основы никуда не денутся. В ES6 те же классы строятся на прототипах, новичкам будет гораздо лучше поработать сначала с прототипами, а потом переходить к классам, чтобы было понимание того, как работают новые механизмы языка.

Ах да, ES7 пока ниразу не близится к завершению)
Ответить с цитированием
  #16 (permalink)  
Старый 31.12.2014, 15:35
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Несмотря на то, что уже можно писать на ES6, всё равно нужно начинать с ES5, т.к. основы никуда не денутся
А чего не с ES3?)
Цитата:
В ES6 те же классы строятся на прототипах, новичкам будет гораздо лучше поработать сначала с прототипами, а потом переходить к классам, чтобы было понимание того, как работают новые механизмы языка.
Спорно. Обычно таки сперва изучают механизм в общем и лишь потом углубляются в то, как он работает.
Цитата:
Ах да, ES7 пока ниразу не близится к завершению)
Ну да, коряво выразился.

Последний раз редактировалось Erolast, 31.12.2014 в 15:42.
Ответить с цитированием
  #17 (permalink)  
Старый 31.12.2014, 15:46
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от Erolast
Обычно таки сперва изучают механизм в общем и лишь потом углубляются в то, как он работает.
там нет никакого "механизма", это всего лишь сраный сахар. Если бы люди понимали "механизм", никакие "Классы" бы не понадобились. Как и сам ES6 ES7 etc.
Ответить с цитированием
  #18 (permalink)  
Старый 31.12.2014, 15:59
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Erolast,
Цитата:
А чего не с ES3?)
Ну.. и его тоже) Просто сейчас наиболее распространена именно 5 версия.

Цитата:
Спорно. Обычно таки сперва изучают механизм в общем и лишь потом углубляются в то, как он работает.
Как ты и сказал - спорно)
Ответить с цитированием
  #19 (permalink)  
Старый 31.12.2014, 16:00
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

krutoy,
Цитата:
Как и сам ES6 ES7 etc.
Ну это ты перегнул, конечно.
Ответить с цитированием
  #20 (permalink)  
Старый 31.12.2014, 16:06
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Ну.. и его тоже) Просто сейчас наиболее распространена именно 5 версия.
Не, ну разумеется надо изучать весь язык, но зачем, скажем, велосипедить свой extend, когда можно просто взять уже имеющийся?
Цитата:
там нет никакого "механизма", это всего лишь сраный сахар. Если бы люди понимали "механизм", никакие "Классы" бы не понадобились. Как и сам ES6 ES7 etc.
Любой ЯП - не более, чем синтаксический сахар над машинным кодом.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы с ссылками на объект в прототипе при создании нового объекта riva Общие вопросы Javascript 2 04.11.2014 00:00
Фиксация объекта при скрулинге страницы Pashok(one) Общие вопросы Javascript 10 08.01.2013 02:52