Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.09.2011, 23:52
Интересующийся
Отправить личное сообщение для grus Посмотреть профиль Найти все сообщения от grus
 
Регистрация: 28.10.2010
Сообщений: 15

ООП и JS. Коллекция объектов
function Animal(name) {
    this.name = name
    this.canWalk = true
}
 
var animal = new Animal("скотинка")
 
function Rabbit(name) {
    this.name = name
}

big = new Rabbit('Chuk')
small = new Rabbit('Gek')


как в такой конструкции получить список объектов (коллекцию) потомков класса Animal?
как получить список объектов я знаю,как в такой конструкции получить список потомков класса Animal?

Последний раз редактировалось grus, 28.09.2011 в 15:19.
Ответить с цитированием
  #2 (permalink)  
Старый 28.09.2011, 11:14
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от grus
как получить список объектов я знаю
И как же? Если понять, что для тебя "получить список объектов", можно подумать, как "получить список потомков класса Animal"
Ответить с цитированием
  #3 (permalink)  
Старый 28.09.2011, 15:16
Интересующийся
Отправить личное сообщение для grus Посмотреть профиль Найти все сообщения от grus
 
Регистрация: 28.10.2010
Сообщений: 15

function list() {
		for (var key in obj) {
			alert(key+':'+obj[key])
		}
}

вот таким нехитрым способом можно получить объекты класса
Ответить с цитированием
  #4 (permalink)  
Старый 28.09.2011, 15:43
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от grus
вот таким нехитрым способом можно получить объекты класса
Не, так получается объект, в который скопированы свойства и методы другого объекта. Такой объект уже даже не instanceof Animal.
Вообще, можно хранить ссылки либо в прототипе, либо в конструкторе:
function Animal(name) {
    this.name = name
    this.canWalk = true
    *!*this.constructor.prototype.collection.push( this );*/!*
}
Animal.prototype.collection = [];

Но почему бы не сделать так:
var big = new Rabbit('Chuk'),
    small = new Rabbit('Gek'),
    collection = [ big, small ];
?
Ответить с цитированием
  #5 (permalink)  
Старый 28.09.2011, 19:48
Интересующийся
Отправить личное сообщение для grus Посмотреть профиль Найти все сообщения от grus
 
Регистрация: 28.10.2010
Сообщений: 15

спасибо, оба варианта подходят, второй я и сам думал использовать
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
немного ООП на JS Nightmare Общие вопросы Javascript 6 11.09.2011 20:50
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28
ООП: как создавать наследника от встроенных объектов? Langalier Общие вопросы Javascript 17 02.02.2009 17:07