вот первых вот принцип работы не рассматривающий внутренние механизмы.
http://javascript.ru/forum/185323-post1.html |
Цитата:
// СОЗДАЛИ прототип ПРИ ПОМОЩИ Object var prototype = Object({name:'ololo'}); // подключили его к функции Cat function Cat (){}; Cat.prototype = prototype; |
Цитата:
Он выглядит так function Cat(){}; Cat.prototype = {constructor:Cat} ну так сделано чтобы в созданных обьектах была ссылка на конструктор который их создал, и если мы перезаписываем этот прототип ЦЕЛИКОМ (а не просто добавлем в него что-то) то нужно и замутить вот это свойство constructor вручную. Только один ньюанс, когда оно создавалось автоматчиески оно было скрытым и немеречисляемым при for in ? а когда мы его создаем вручную , то создается обычное перечисляемое свойство, и это геморно слегка. |
Цитата:
А вот прототип прототипа f.prototye.__proto__ - это уже простой объект. 2. "желательно возвращать прототипу при перезаписи". Почему ? |
Цитата:
и это пустой обьект, с одним скрытым свойством. {__proto__: Object.prototype} а в Object.prototype уже лежит ссылка constructor на функцию Object |
Цитата:
если уж говорить конкретнее то чтобы можно было реализовывать статические свойства. function Cat(){ this.constructor.cats ++; } Cat.cats = 0; при создании каждого кота, своство cats будет увеличиваться, типа того, то есть this.constructor нужно чтобы у всех обьектов было общее "хранилеще данных" куда можно что-то сложить общее для всех котов ЕСЛИ ЗАХОЧЕТСЯ ЭТО СДЕЛАТЬ разумеется. ну в общем разные применения. |
Цитата:
|
Ответил в топике в самом начале
|
Ответил в топике в самом начале
|
almac,
ты все не правильно понял, хчоешь понят как оно работает открой консоль хрома и смотри там |
Часовой пояс GMT +3, время: 20:56. |