Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Зачем нужен "Конструктор"
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Зачем нужен "Конструктор"

Страниц (2): [1] 2 »
 

1. etoYA - 10 Июня, 2014 - 08:00:48 - перейти к сообщению
В чем разница между этими функциями? То, что 1я конструктор - я знаю, но делают они одно и тоже.

Для кого-то этот вопрос покажется глупым, но я новичок - мне можно потупить Улыбка.

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function SomeFunction() {
  3.     //...
  4. }
  5. SomeFunction.prototype.foo = function() { //... }
  6. SomeFunction.prototype.bar = function() { //... }
  7.  

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function SomeFunction() {
  3.     this.foo = function() { //... };
  4.     this.bar = function() { //... };
  5. }
  6.  


Единственная разница (как я понимаю) - это то, что в 1м варианте foo и bar не смогут использовать локальные переменные и функции SomeFunction . Верно?

Возможно я несу какую-то фигню, сильно не смейтесь и.т.д Улыбка
2. Ch_chov - 10 Июня, 2014 - 08:57:40 - перейти к сообщению
etoYA пишет:
function SomeFunction() {
    this.foo = function() { //... };
    this.bar = function() { //... };
}


Каждый экземпляр SomeFunction будет иметь свои собственные foo и bar. Т.е. если создать 100 экземляров SomeFuncton, то будет создано 100 абсолютно одинаковых foo и bar.
3. DelphinPRO - 10 Июня, 2014 - 10:12:09 - перейти к сообщению
Касаемо методов объекта, то лучше их объявлять в прототипе, ибо как сказали выше - они будут созданы один раз.
А вот с полями объекта ситуация интереснее. Если вы поле объявите в прототипе и создадите несколько объектов, то при изменении свойства в одном из них, оно поменяется во всех остальных. Чем-то это напоминает статический член класса в php, хотя аналогия, конечно, грубая.
4. etoYA - 10 Июня, 2014 - 10:44:55 - перейти к сообщению
Отлично,спасибо!
5. nerv - 10 Июня, 2014 - 11:35:48 - перейти к сообщению
DelphinPRO пишет:
А вот с полями объекта ситуация интереснее. Если вы поле объявите в прототипе и создадите несколько объектов, то при изменении свойства в одном из них, оно поменяется во всех остальных.

не всегда, смотря как менять

etoYA, второй вариант не будет наследоваться "через прототип"
6. etoYA - 10 Июня, 2014 - 11:40:26 - перейти к сообщению
nerv, в том то и дело, что 2й вариант без прототипа.
7. nerv - 10 Июня, 2014 - 11:53:22 - перейти к сообщению
etoYA пишет:
в том то и дело, что 2й вариант без прототипа.

А В JS ПРОТОТИПНОЕ НАСЛЕДОВАНИЕ

Читай уже учебник и не задавай глупые вопросы. На глупые вопросы либо не отвечаю, либо отвечаю глупо Улыбка
8. etoYA - 10 Июня, 2014 - 21:25:22 - перейти к сообщению
nerv, А разве я что-то спрашивал про наследование? Во первых лично у Вас я ничего не спрашивал, во вторых - то, что в JS прототипное наследование я знаю, в 3х я получил исчерпывающий ответ на мой вопрос от DelphinPRO и Ch_chov.
В 4х глупо выглядите именно Вы, т.к отвечаете на нормальный вопрос ГЛУПЫМ ответом, которой никак не касается данного топика. Удачи.
9. nerv - 11 Июня, 2014 - 10:40:03 - перейти к сообщению
etoYA пишет:
А разве я что-то спрашивал про наследование?

etoYA пишет:
В чем разница между этими функциями?


---

etoYA пишет:
во вторых - то, что в JS прототипное наследование я знаю

судя по твоему вопросу - нет

---

etoYA пишет:
в 3х я получил исчерпывающий ответ на мой вопрос от DelphinPRO и Ch_chov

как показали мои посты выше - нет

---

etoYA пишет:
Во первых лично у Вас я ничего не спрашивал

Когда ты создаешь тему на форуме, ты обращаешься ко всем участникам форума.
Впредь, если ты не хочешь, чтобы я отвечал в твоих темах, пожалуйста, делай соотв. пометку в первом посте темы.

---

etoYA пишет:
В 4х глупо выглядите именно Вы, т.к отвечаете на нормальный вопрос ГЛУПЫМ ответом, которой никак не касается данного топика.

Хорошо. Если ты предпочитаешь не замечать очевидного, не буду мешать Улыбка
10. Ch_chov - 11 Июня, 2014 - 11:35:57 - перейти к сообщению
nerv, а что плохого в глупых вопросах? Здесь на форуме большинство пользователей новички, они спрашивают то, что им не понятно. Этот вопрос был ничем не глупее остальных.
11. caballero - 11 Июня, 2014 - 12:05:05 - перейти к сообщению
Ch_chov
Он настолько гениален что любой вопрос кажется глупым Улыбка
12. nerv - 11 Июня, 2014 - 13:34:37 - перейти к сообщению
Ch_chov пишет:
а что плохого в глупых вопросах

если кто не понял, я про это

etoYA пишет:
в том то и дело, что 2й вариант без прототипа


Я как бы заметил, что второй вариант "без прототипа", о чем написал в [url=
Ch_chov пишет:
а что плохого в глупых вопросах?
]первом же своем посте этой темы[/url], и в нем же напомнил автору, что в js прототипное наследование

---

caballero пишет:
Он настолько гениален что любой вопрос кажется глупым

если бы Закатив глазки

---

Ch_chov пишет:
а что плохого в глупых вопросах?

плохо, когда одна глупость накладывается на другую)
13. esterio - 11 Июня, 2014 - 14:30:57 - перейти к сообщению

Ch_chov
Хоть и nerv много знает о JS, что не раз было видно из его постов, но его ЭГО уж очень большое
14. nerv - 11 Июня, 2014 - 16:03:33 - перейти к сообщению
esterio пишет:
но его ЭГО уж очень большое

тебе показалось Ха-ха См ответ на вопрос caballero в этом посте

Возможно, я погорячился относительно etoYA.
Дело в том, что я захожу на этот форум, как правило, после просмотра остальных.
И когда начитаешься постов пользователей типа Gerd, уже начинает выворачивать.
15. LIME - 11 Июня, 2014 - 16:08:26 - перейти к сообщению
nerv че ты перед ними отчитываешься!?
лучше громко об...ться чем тихонечко набз...ть!

Радость я почти не подстрекаю

 

Powered by ExBB FM 1.0 RC1