Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Понимание ООП в JavaScript (https://javascript.ru/forum/misc/3070-ponimanie-oop-v-javascript.html)

kefi 01.04.2009 09:56

Вот такой вопрос :

Вообще какие this поля и методы разумно держать в Конструкторе объекта ?

Zeroglif 01.04.2009 11:08

Любые, если они нужны лично "экземплярам".

kefi 02.04.2009 22:14

Вот такой вопрос :
А клонировать конструктор и связанный с ним прототип возможно ? И как ?

Zeroglif 03.04.2009 11:40

Клонировать deep? Функции не клонировать, объекты тяжело, т.к. нужно тип выяснять и т.д.

kefi 03.04.2009 19:51

Цитата:

Сообщение от Zeroglif
Клонировать deep?

Полностью.
Функции вроде как раз можно:
function f(a,b,c){/*код*/};
var f2=new Function(ВыделитьАрг(f,Первый),ВыделитьАрг(f,Второй),ВыделитьАрг(f,Последний),Выделить_код_тела(f))

правда не знаю , как передавать выделенные аргументы в Function , т.е. как составить выражение
new Function(от заранее неизвестного числа аргументов) ...

Dmitry A. Soshnikov 03.04.2009 20:28

Цитата:

Сообщение от kefi
new Function(

Всё равно не клон будет; функции, созданные таким способом, в качестве [[scope]] имеют глобальный объект.

Можно просто создавать новую ссылку на тот же блок кода. Правда, изменение свойств будет общее.

kefi 03.04.2009 22:07

Цитата:

Сообщение от Dmitry A. Soshnikov
Можно просто создавать новую ссылку на тот же блок кода

Ну новая ссылка на тот же блок совсем не клон, хотя ..., м.б. оно не не нужно никогда вообще говоря, иметь абсолютный клон.

Dmitry A. Soshnikov 03.04.2009 23:15

kefi, ну, а неправильный [[scope]] - совсем неверно.

kefi 03.04.2009 23:42

Есть такой вопрос :
Свойства прототипа - это обычно неизменные , постоянные величины, определяемые только изначально проинициализированными значениями ?
Или в javascript широко используется их изменение во время работы программы ?

Dmitry A. Soshnikov 03.04.2009 23:49

Цитата:

Сообщение от kefi
Или в javascript широко используется их изменение во время работы программы ?

Да, используется (как и в любом динамическом языке). Так работают всякого рода плагины и т.д.


Часовой пояс GMT +3, время: 02:30.