Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 08.01.2012, 00:41
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от Wizout Посмотреть сообщение
еще вопросик один появился, про методы
есть ли разница между
1. описываем функцию отдельно от конструктора объекта, а затем присваиваем ее свойству
2. описываем функцию внутри конструктора, т.е. this.свойство = function(){}

если разницы нету, то можно использовать любой вариант какой удобнее?
да) разницы нету))) какая разница что конструктор метод добавит что вы руками это сделаете))

просто если это действие внутри конструктора, то его можно повторять с разными обьектами не пишА каждый раз))

оператор new между нами говоря вообще делает следущее

допустим у нас есть конструктор Cat()

обычные люди делают так
var cat1 = new Cat()

тут оператор new просто создает новый пустой обьект и устанавливает this внутри функции (первой вызванной после него функции) на этот новый обьект, ну и ПРИМЕНЯЕТ к нему Cat(), который и делает свои грязные делишки со свойствами этого пустого обьекта через this))
иными словами var cat1 = {}.Cat() типа того))
как посчитается то что справа, то результат (пустой обьект после воздействия на него функции Cat() ) кладется в то что слева)))

да, кстати ты в прототипах разбираешься)? я могу обьяснить в 3-4 предложения)))

Последний раз редактировалось Livaanderiamarum, 08.01.2012 в 00:55.
Ответить с цитированием
  #22 (permalink)  
Старый 08.01.2012, 00:41
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Wizout, а проверить перед тем, как спрашивать?) Делайте так, как Вам удобней. Чтобы код хорошо читался и был логичным (если можно так выразиться).
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #23 (permalink)  
Старый 08.01.2012, 00:58
Интересующийся
Отправить личное сообщение для Wizout Посмотреть профиль Найти все сообщения от Wizout
 
Регистрация: 21.12.2011
Сообщений: 26

Сообщение от nerv_ Посмотреть сообщение
Wizout, а проверить перед тем, как спрашивать?) Делайте так, как Вам удобней. Чтобы код хорошо читался и был логичным (если можно так выразиться).
ну я как раз пробую все и так и так попробовал, разницы не увидел, вот и решил спросить может есть все таки разница и я что-то мог упустить из виду=) просто переходя с с# на js столько вариантов записи одного и того же действия немного ставят в тупик, как правильно и лучше написать код

Сообщение от Livaanderiamarum Посмотреть сообщение
да, кстати ты в прототипах разбираешься)? я могу обьяснить в 3-4 предложения)))
до прототипов еще не дошел
Ответить с цитированием
  #24 (permalink)  
Старый 08.01.2012, 01:07
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от Wizout Посмотреть сообщение
ну я как раз пробую все и так и так попробовал, разницы не увидел, вот и решил спросить может есть все таки разница и я что-то мог упустить из виду=) просто переходя с с# на js столько вариантов записи одного и того же действия немного ставят в тупик, как правильно и лучше написать код



до прототипов еще не дошел
Ну короче в ООП типа есть куча обьектов и типа у них есть свойства и методы, и все они занимают память) и людишки придумали общие матоды засовывать типа по папкам чтобы экономить память, у обьектов просто не КОПИРОВАТЬ каждый раз одно и то же свойство или метод а просто записывать его один раз и сувать в каждый обьект ссылку на это свойство или метод), обращаясь к какому то методу он будет доставать его по ссылке их общего хранилища и использовать относительно себя))).
что оч удобно))

Типа того. Так вот Это называется классы и прототипы.
Вся эта дрянь нужна чтобы в одном обьекте методы записать ОДИН РАЗ, а его "дети" смогут юзать эти методы как свои собственные, и дублироваться в каждом ребенке они не будут)))

вначале если ты че-то вызываешь у обьекта, то это ищется в самом нем, если там нет, то ищется в методах отца)))
все просто))

и естественно можно было бы в каждый ребенок КОПИРОВАТЬ какой то метод, но придумали не копировать общие методы а записывать этот метод один раз в ОТЦЕ, а в детях класть только на него ссылку))

- суть такова)))

Последний раз редактировалось Livaanderiamarum, 08.01.2012 в 01:14.
Ответить с цитированием
  #25 (permalink)  
Старый 08.01.2012, 01:09
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Wizout, я сам до этого изучал язык с более строгим синтаксисом vba. НУ и немного asm'а) По началу возникало аналогичное ощущение. Сейчас прошло) Скоро и Вы это полюбите фридом...) Я, кстати, тоже новичок. В js месяц-полтора. Благо есть форум, где добрые люди объясняют и разжевывают, за что им очередное спасибо)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #26 (permalink)  
Старый 08.01.2012, 01:14
Интересующийся
Отправить личное сообщение для Wizout Посмотреть профиль Найти все сообщения от Wizout
 
Регистрация: 21.12.2011
Сообщений: 26

Сообщение от nerv_ Посмотреть сообщение
Wizout, я сам до этого изучал язык с более строгим синтаксисом vba. НУ и немного asm'а) По началу возникало аналогичное ощущение. Сейчас прошло) Скоро и Вы это полюбите фридом...) Я, кстати, тоже новичок. В js месяц-полтора. Благо есть форум, где добрые люди объясняют и разжевывают, за что им очередное спасибо)
фридом мне казалось раньше это в с++ но вот как начал оказывается там не было никакой свободы по сравнению с js а конструкторами функций мне удобнее пользоваться, чем инициализаторами тем, что это хоть более менее напоминает работу с классами
Ответить с цитированием
  #27 (permalink)  
Старый 08.01.2012, 01:14
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от nerv_ Посмотреть сообщение
Wizout, я сам до этого изучал язык с более строгим синтаксисом vba. НУ и немного asm'а) По началу возникало аналогичное ощущение. Сейчас прошло) Скоро и Вы это полюбите фридом...) Я, кстати, тоже новичок. В js месяц-полтора. Благо есть форум, где добрые люди объясняют и разжевывают, за что им очередное спасибо)
Всегда пожалуйста) бро
Ответить с цитированием
  #28 (permalink)  
Старый 08.01.2012, 01:16
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

п.с. ДАА) изучаю JS 5 лет)) посмотрел в сторону других языков - ЖЕСТЬ))

реально НМОго лишних вещей и много не понытного и не нужного..

Например ЗАЧЕМ определть тип переменной??? неужели современные технологии не способны автоматом это делать?? способны) просто те языки появились 200 лет назад)
Ответить с цитированием
  #29 (permalink)  
Старый 08.01.2012, 01:17
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Wizout, а можно вопрос: почему в js потянуло?)
Сообщение от Livaanderiamarum
апример ЗАЧЕМ определть тип переменной??? неужели современные технологии не способны автоматом это делать?? способны)
"Я Вам не скажу за всю Одессу", но в vba если явно не указывать тип переменной, он определяется автоматически.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #30 (permalink)  
Старый 08.01.2012, 01:19
Интересующийся
Отправить личное сообщение для Wizout Посмотреть профиль Найти все сообщения от Wizout
 
Регистрация: 21.12.2011
Сообщений: 26

Сообщение от Livaanderiamarum Посмотреть сообщение
Ну короче в ООП типа есть куча обьектов и типа у них есть свойства и методы, и все они занимают память) и людишки придумали общие матоды засовывать типа по папкам чтобы экономить память, у обьектов просто не КОПИРОВАТЬ каждый раз одно и то же свойство или метод а просто записывать его один раз и сувать в каждый обьект ссылку на это свойство или метод), обращаясь к какому то методу он будет доставать его по ссылке их общего хранилища и использовать относительно себя))).
что оч удобно))[/b]
а разве эти дополнительные действия не повлияют на скорость работы сценария никак? я думаю чем меньше лишних действий будет делать браузер, тем быстрее будет работать сценарий

и еще по поводу того как тут хорошо тут работает GC? чтобы объект быстрее был удален из памяти, стоит ли при прекращении использования объекта присваивать NULL, чтобы он быстрее удалился или это никак не повлияет работу GC?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по созданию меню LeeleeKeelee jQuery 0 21.01.2011 20:46
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
Вопрос по получению свойств из динамических объектов mexoboy Общие вопросы Javascript 2 26.01.2010 21:45
Быстрый поиск объектов Shasoft Общие вопросы Javascript 7 30.07.2009 05:28