Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 16.04.2013, 13:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Сообщение от rgl Посмотреть сообщение
Т.е. constructor - не конструктор. Точно так же можно показать, что prototype - не прототип
Сообщение от dmitriymar Посмотреть сообщение
прототип это прототип, конструктор это конструктор.
Наркоманы. -_\\
__________________
29375, 35
Ответить с цитированием
  #42 (permalink)  
Старый 16.04.2013, 14:54
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

аххаах
Ответить с цитированием
  #43 (permalink)  
Старый 16.04.2013, 15:56
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Сообщение от father_gorry
Хорошо, прототип - это не прототип (sic!), а свойство.
Кто сказал вам эту бяку? Я же говорил вам, что свойство prototype объекта - не прототип! Прототип объекта находится в скрытом свойстве [[Prototype]], которое доступно в некоторых браузерах как свойство __proto__
Свойство же prototype функции указывает на прототип будущих объектов, которые она создаст
Объясню на пальцах для тупых
var obj = {
 size: 50
} ; // итак, это у нас обычный объект
function Constr() {
 this.color = "red" ;
} ; // объявили функцию-конструктор
Constr.prototype = obj ; /* присвоили свойству prototype функции-конструктора ссылку на obj
теперь у объектов, созданных этой функцией-конструктором, прототип будет ссылаться на obj
*/
var newObj = new Constr ; /* создали новый объект с помощью функции-конструктора
прототип этого объекта ссылается на obj
мы даже можем это проверить
*/
alert(newObj.size) ; /* size взялся из прототипа, ведь у самого newObj такого свойства нет
вот и доказательство, что obj - прототип newObj, т.к. только у obj есть это свойство
проверим по-другому
*/
alert(newObj.__proto__ == obj) ; // true, действительно obj является прототипом объекта newObj
// мы можем сделать даже так
alert(newObj.__proto__.size) ; // ведь т.к. newObj.__proto__ ссылается на obj, то мы можем взять свойство size прямо оттуда
// а теперь проверяем, что же такое свойство prototype у объекта?
alert(newObj.prototype) ; /* undefined!
Действительно, мы же не определяли это свойство у newObj, вот оно и равно undefined
Мы можем делать с этим свойством что угодно
*/
newObj.prototype = "string" ; // присвоили этому свойству строку
alert(newObj.prototype) ; // string
delete newObj.prototype ; // удалили это свойство
alert(newObj.prototype) ; // оно снова undefined
alert(newObj.__proto__ == obj) ; // а прототип по-прежнему остался неизменным


Сообщение от father_gorry
Так я и пользуюсь им как свойством
Вы пользуетесь не прототипом! Свойство prototype объекта не является его прототипом!
Сообщение от father_gorry
в результате - prototype.prototype.prototype.
В результате, естественно, бред
Сообщение от father_gorry
Да, он и ведет себя как обычное свойство.
Ну prototype это и есть обычное свойство объекта, как и другие.
Сообщение от father_gorry
Но при чем здесь тогда наследование через прототип, его же нет?
Он есть, просто вы привязались к свойству prototype и упорно не хотите воспринимать, что это свойство - всего лишь свойство, а никакой не прототип
__________________
★ ²º¹³ ☆

Последний раз редактировалось Hekumok, 16.04.2013 в 16:00.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
есть ли в js понятие частоты кадров, наподобие как во флэше? andrew_F Общие вопросы Javascript 8 01.05.2012 20:25
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37