Сообщение от father_gorry
|
Хорошо, прототип - это не прототип (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 еще и прототип.
Прототипы объекта - внутреннее свойство, к нему в целом нельзя обратиться напрямую, для простоты я писал, чтоб вы считали что такого свойства у объектов нет. С прототипами объектов нужно работать через функции-конструкторы, которые эти объекты создают.