Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Есть ли разумное объяснение столь чрезмерной сложности наследования в js? (https://javascript.ru/forum/misc/37293-est-li-razumnoe-obyasnenie-stol-chrezmernojj-slozhnosti-nasledovaniya-v-js.html)

father_gorry 15.04.2013 20:50

Вот еще:
"В Javascript функция тоже является объектом".
Object.prototype = ... - можно
function.prototype =... - ошибка

father_gorry 15.04.2013 20:55

Цитата:

Сообщение от Hekumok (Сообщение 246379)
Так НЕЛЬЗЯ писать потому, что свойство prototype - это НЕ прототип, а обычное свойство! Поймите вы это уже

Хорошо, прототип - это не прототип (sic!), а свойство. Так я и пользуюсь им как свойством, в результате - prototype.prototype.prototype.. Да, он и ведет себя как обычное свойство. Но при чем здесь тогда наследование через прототип, его же нет?

dmitriymar 15.04.2013 20:55

Цитата:

Сообщение от father_gorry
Вот еще:
"В Javascript функция тоже является объектом".
Object.prototype = ... - можно
function.prototype =... - ошибка

Вопрос -а на хрена это ?
Цитата:

Сообщение от Hekumok
Сообщение от father_gorry
В Вашем примере оба раза 10. Где ошибка?
С чего это вы взяли, что там ошибка?

это всё объясняет . не?
функция потомок чего? потомку(объекту) можно переопределить прототип после создания ?- Нет
Примеров приведено море, хватит чтоб внимательно рассмотреть и понять как работает, а не двигать свои теории. Причём те, на какие ответ был дан однозначный ранее


Цитата:

Сообщение от father_gorry
Хорошо, прототип - это не прототип (sic!), а свойство. Так я и пользуюсь им как свойством, в результате - prototype.prototype.prototype.. Да, он и ведет себя как обычное свойство. Но при чем здесь тогда наследование через прототип, его же нет?

не надоело? основы изучите -вопросы отпадут

Цитата:

Сообщение от father_gorry
Но при чем здесь тогда наследование через прототип, его же нет?

А чем является свойство prototype ? ............(сюда самостоятельно впишите) на объект родитель
как и где ищутся наследуемые свойства/методы?

tenshi 15.04.2013 22:20

Цитата:

Сообщение от Aetae (Сообщение 246197)
Взяли и убили у человека зарождающееся понимание...))

Если бы. Он даже не заметил правильного ответа, куда интересней витать в собственных фантазиях..

megaupload 15.04.2013 22:28

Function а не function лол))

Aves 16.04.2013 11:03

Цитата:

Сообщение от father_gorry (Сообщение 246385)
Хорошо, прототип - это не прототип (sic!), а свойство. Так я и пользуюсь им как свойством, в результате - prototype.prototype.prototype.. Да, он и ведет себя как обычное свойство. Но при чем здесь тогда наследование через прототип, его же нет?

var red = {color:'red'};
function Circle(){
    this.shape = 'circle;
}
Circle.prototype = red;
var redCircle = new Circle();
alert(redCircle.color); // 'red'
red.brightness = 'dark';
alert(redCircle.brightness); // 'dark'


Это - самая основа наследования в JS. Пока вы не разберетесь с этим, любой тролль типа dmitriymar сможет убедительно напудрить мозги, объясняя что прототип - это [[Prototype]], а совсем не prototype, который у constructor, потому что constructor это совсем не конструктор; и только кое-где этот прототип - __proto__. А конструктор - это вообще песня, потому как будучи в той же мере объектом, что и те, которые создает, имеет одновременно с prototype еще и прототип.

Прототипы объекта - внутреннее свойство, к нему в целом нельзя обратиться напрямую, для простоты я писал, чтоб вы считали что такого свойства у объектов нет. С прототипами объектов нужно работать через функции-конструкторы, которые эти объекты создают.

rgl 16.04.2013 11:28

Aves,
Чушь несете. Вам бы для начала разобраться в вопросе, а потом уже других учить. А то нахватались обрывочных знаний, и дополнили их своими ошибочными домыслами.
В вашем же примере constructor вновь созданного объекта redCircle - это вовсе не конструктор. Конструктор - функция Circle, а constructor указывает на Object
var red = {color:'red'};
function Circle(){
    this.shape = 'circle';
}
Circle.prototype = red;
var redCircle = new Circle();
alert(redCircle.color); // 'red'
red.brightness = 'dark';
alert(redCircle.brightness); // 'dark'


alert( redCircle.constructor == Circle );
alert( redCircle.constructor == Object );

Т.е. constructor - не конструктор. Точно так же можно показать, что prototype - не прототип

dmitriymar 16.04.2013 11:42

Цитата:

Сообщение от Aves
Это - самая основа наследования в JS. Пока вы не разберетесь с этим, любой тролль типа dmitriymar сможет убедительно напудрить мозги, объясняя что прототип - это [[Prototype]], а совсем не prototype, который у constructor, потому что constructor это совсем не конструктор; и только кое-где этот прототип - __proto__. А конструктор - это вообще песня, потому как будучи в той же мере объектом, что и те, которые создает, имеет одновременно с prototype еще и прототип.

Прототипы объекта - внутреннее свойство, к нему в целом нельзя обратиться напрямую, для простоты я писал, чтоб вы считали что такого свойства у объектов нет. С прототипами объектов нужно работать через функции-конструкторы, которые эти объекты создают.

Дого с силами собирался ? подводил под свой бред теорию ?
Во намешал, намешал . А где белочки и орешки? Такие изыскания обычно начинаются с эпиграфа:

У меня закончились помогающие таблетки, А потом пришла белочка с орешками . И в ходе дружеских посиделок родилась теория:.....

Цитата:

Сообщение от Aves
любой тролль типа dmitriymar

Даун пасть закрой -зубы целее будут .
Ещё, один фантаст теоретик, несущий свой бред в массы

Aves 16.04.2013 11:48

Вам самим с собой не надоело общаться, трололо? Где я писал про СВОЙСТВО CONSTRUCTOR у объекта? Я про него вообще не упоминал. Конструктор - это ФУНЦКЦИЯ, СОЗДАЮЩАЯ ОБЪЕКТ. Как выяснить, какая, это другой вопрос.
Если хотите мне что-то попытаться объяснить, хотя бы потрудились понять, о чем я пишу.
Хотя можете не напрягаться, на сообщения троллей, которые видят только то,ч то хотят видеть, я больше реагировать не намерен.

dmitriymar 16.04.2013 11:57

Цитата:

Сообщение от Aves
Вам самим с собой не надоело общаться, трололо? Где я писал про СВОЙСТВО CONSTRUCTOR у объекта? Я про него вообще не упоминал. Конструктор - это ФУНЦКЦИЯ, СОЗДАЮЩАЯ ОБЪЕКТ. Как выяснить, какая Если хотите мне что-то попытаться объяснить, хотя бы портудилиь понять, о чем я пишу.
Хотя можете не напрягаться, на сообщения троллей, которые видят только то,ч то хотят видеть, я больше реагировать не намерен.

Во как уже перекрутил уже... Ну и даунито
С чего всё начиналось:
Цитата:

Сообщение от Aves
Если опустить тонкости, то можно сказать, что у объектов нет прототипов, у них есть конструкторы

...
Еще раз для бредоносной пчелы, возомнивших себя спецом-теоретиком:
прототип это прототип, конструктор это конструктор.
У прототипа есть свойство конструктор какое указывает на функцию конструктор(не рассматриваем случаи когда не указывает ).

И не нужно "изысков" бредовых, для доказательств бреда надуманного


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