![]() |
Вопрос по Робину Дебройлу (ООП)
Код:
Pet = function( name )Подскажите, пожалуйста, как rover получает свойство name. Я не понимаю как работает: this.$_base = Pet; this.$_base (name); delete (this.$_base); Почему просто this.Pet (name); - не читает? Что передается в случае this.Pet (name); ? |
зачем так хитро ? :)
Код:
Pet = function (name) { |
Цитата:
Dog.prototype.__proto__ = Pet.prototype; Цитата:
обычно чатаются свойства от созданных объектов на основе класса! в данном случае - это rover! trace(rover.legs); после создания надкласса можно проверить что Dog получил все свойства: myDog = new Dog(); trace(myDog.legs); Цитата:
но для чего потом delete (this.$_base); мне не понятно!:) |
О!теперь понятно! :D
|
Nox Noctis и Пушистик - спасибо большое :)
Сейчас буду осмыслять... |
Dear Nox Noctis и Пушистик,
если разбирать this.$_base = Pet; this.$_base (name); delete (this.$_base); 1) rover получает свойство $_base со значением Pet (это что, правда такое значение может быть?) 2) rover вызывает метод Pet, передавая параметр name. 3) Pet навешивает на rover свойство name со значением параметра. 4) this.$_base удаляется как больше не нужный. Верно? Тогда почему нельзя написать просто this.Pet (name); ? |
потому что в классе Dog НЕТУ такого метода - Pet...
я вообще-то не очень понимаю что имел в виду дебройль, написав такую запутку... не понятно зачем :) (можно цитату из книги ?) получается что ты временно содаешь метод в объекте класса Дог, потом после его вызова тут же его удаляешь... и при этом еще используешь прототип класса Pet как родительский для Dog... хотя только что использовал Pet как непонятно что, а не по оопшному назначению... короче фигня какая-то. все работает, это да, но нафига так ? :)) |
ааа.. дебройлевские примеры "Жизнь вокруг нас"...
на вскидку: Dog = function( name ){ this.$_base = Pet; this.$_base (name); delete (this.$_base); } Dog.prototype.__proto__ = Pet.prototype; это есть вызов для данного объекта конструктора родительского класса с передачей ему параметра; свойство name в Pet назначается и наследуется объектом класса Dog при его создании. все, конечно, очень условно, пример явно не слишком удачный. но это Дебройль -- -->обучение принципам. может, кто поправит? |
Nox Noctis,
Цитата:
Цитата:
Цитата:
|
да, я не мог сказать так красноречиво, как Дебройль =))))
то, что написано, по-моему, все объясняет и раскладывает по полочкам. dm_nev, может, мы тебе с чем-то конкретным поможем? какая проблема-то? :) |
| Часовой пояс GMT +4, время: 02:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.